如何在Yii中使用CGridView的ajaxUrl参数?

gly*_*yph 6 ajax yii

我正在尝试使用CGridView的ajaxUrl参数,它没有任何效果.

$this->widget('zii.widgets.grid.CGridView', array(
   'id'=>'ge-cg-'.$myLib['id'],
   'filter'=>$geCGModel,
   'dataProvider'=>$dataProvider, 
   'columns'=>$columns,
   'ajaxUrl'=>Yii::app()->createUrl( 'Something/search' ),
));
Run Code Online (Sandbox Code Playgroud)

这似乎没有覆盖CGridView小部件的ajax url.网格的ajax请求仍然会转到呈现它的控制器(这与网格自己的控制器不同).

谢谢!

boo*_*dev 11

ajaxUrl属性仅适用于"每列过滤器"和"高级搜索"的搜索.排序链接和分页链接是根据$dataProvider您指定的内容生成的.您可以检查CGridView和CDataColumn的源,以分别查看从dataProvider中提取分页排序的方式.

因此,如果您希望这些链接也使用ajaxUrl您想要指定的链接,那么您必须为routeCPagination对象和CSort对象设置属性$dataProvider,如下所示:

$dataProvider=new CActiveDataProvider('Modelname',array(
    'criteria'=>$criteria,
    'pagination'=>array(
        'route'=>'something/search'
    ),
    'sort'=>array(
        'route'=>'something/search'
    )
));
Run Code Online (Sandbox Code Playgroud)

这与您当前的CGridView设置相结合应该按预期工作.