2010-06-17 77 views
13

当通过XHR提交“创建”模式对话框时 然后应该刷新Yii CGridView中的行。我可以从js刷新Yii CGridView吗?

我已经尝试通过渲染新的GridView在XHR“创造”的动作,然后通过$("#list").html(response)将其插入到页面来实现这一点,但渲染CGridView引起的jQuery <script>包括登记纳入标签,等等当我将这些标签引入页面时,它们会重新加载jQuery,这会消耗掉我的事件处理程序,所以一堆东西都会中断。

哪位有我的想法,“GridView知道如何刷新自己,嘿,它一直在排序或页面上。”

所以我可以从js中点击GridView中的排序按钮,但那不是理想的。我宁愿说

$(“#list”)。gridview('reload')或者$ .fn.gridview.reload(“#list”)或者这样的含义。

或者做一些很酷的事情,比如你刚才想到的那么简单。

回答

46

执行$.fn.yiiGridView.update("<id of CGridView>");

+0

此命令的缺点是它重置筛选器,排序和分页。因此,如果您通过ID订购商品,请转至第二页,然后调用此命令,当前屏幕丢失,您必须再次找到您的商品。 – Racky 2013-07-10 08:15:15

+1

我认为这个答案应该被接受。 – ivkremer 2013-10-24 14:36:58

+1

$ .fn.yiiListView.update(“”,{ data:$(“yourcustomselectors”)。serialize() }); – 2016-05-27 14:45:57