一尘不染

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

ajax

我正在尝试使用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' ),
));

这似乎没有覆盖CGridView小部件的ajax URL。网格的ajax请求仍将传递给呈现它的控制器(这不同于网格自己的控制器)。

谢谢!


阅读 228

收藏
2020-07-26

共1个答案

一尘不染

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'
    )
));

这与您当前的CGridView设置结合使用应该可以正常工作。

2020-07-26