2010-06-17 73 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