在视图中,我显示两个带有数据的网格。 用户可以通过以下方式提交数据:
ajax调用具有成功执行的回调
$.fn.yiiGridView.update("grid1");
$.fn.yiiGridView.update("grid2");
因为两个网格都会通过提交的表单更改其数据。
$ .fn.yiiGridView.update方法将通过检索同一页面并提取所需内容来更新网格。
在这种特殊情况下,它会发生两次,这就需要找到一种方法来避免这种额外的呼叫并减少不必要的流量。
有没有办法修改yiiGridView回调以通过一次调用更新两个网格? 我试图破解这些方法,但没有成功。
答案 0 :(得分:2)
好的,经过一番努力,我找到了解决方案。
我意识到在yiiGridView文档(jquery.gridview.js第39行)中有一个名为ajaxUpdate的字段:
ajaxUpdate:array,其内容可能由ajax响应更新的容器的ID
此值是从CGridView参数(http://www.yiiframework.com/doc/api/1.1/CGridView#ajaxUpdate-detail)
中提取的所以我定义了
$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'grid1', //or could be grid2
'dataProvider' => $model->search(),
'ajaxUpdate'=>'grid1,grid2', //string separated with commas
......
));
现在只需拨打
即可$.fn.yiiGridView.update("grid1"); //or grid2 if you set ajaxUpdate in grid2
两个网格都会更新。
我想知道是否有办法使用gridview函数的options参数覆盖值(使用$('#grid1')。yiiGridView('update',options)语法)