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 theroute
property for both the CPagination object, and CSort object of the$dataProvider
, somewhat like this:This combined with your current CGridView settings should work as expected.