I'm trying to use ajaxUrl param of CGridView and it's having no effect.
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'ge-cg-'.$myLib['id'],
'filter'=>$geCGModel,
'dataProvider'=>$dataProvider,
'columns'=>$columns,
'ajaxUrl'=>Yii::app()->createUrl( 'Something/search' ),
));
This doesn't seem to be overriding the ajax url of the CGridView widget. The grid's ajax request is still going to the controller that rendered it (which is different than the grid's own controller).
Thanks!
The ajaxUrl
property works only for searches, both the "per column filters" and "advanced search". The sort links and pagination links are generated from the $dataProvider
that you specify. You can check the source of CGridView and CDataColumn to see how pagination and sorting is extracted from the dataProvider, respectively.
Hence if you want those links to also use the same ajaxUrl
that you want to specify, then you have to set the route
property for both the CPagination object, and CSort object of the $dataProvider
, somewhat like this:
$dataProvider=new CActiveDataProvider('Modelname',array(
'criteria'=>$criteria,
'pagination'=>array(
'route'=>'something/search'
),
'sort'=>array(
'route'=>'something/search'
)
));
This combined with your current CGridView settings should work as expected.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With