我從數據庫綁定ExtJs Gridpanel並在我的網格面板下添加「刪除」按鈕。通過使用刪除按鈕處理程序,我已經刪除了網格面板上的選定記錄。但是,刪除後,網格不會刷新(它將從數據庫中刪除,但由於不刷新而顯示在網格上)。ExtJs Gridpanel商店刷新
如何在刪除處理程序後刷新網格?
我從數據庫綁定ExtJs Gridpanel並在我的網格面板下添加「刪除」按鈕。通過使用刪除按鈕處理程序,我已經刪除了網格面板上的選定記錄。但是,刪除後,網格不會刷新(它將從數據庫中刪除,但由於不刷新而顯示在網格上)。ExtJs Gridpanel商店刷新
如何在刪除處理程序後刷新網格?
嘗試刷新視圖:
Ext.getCmp('yourGridId').getView().refresh();
試試這個grid.getView().refresh();
他回答了這個比接受的答案遲了1分鐘,可能他們在同一時間打字,但他們有不同的網速。 – goldsky 2014-01-27 11:10:29
這是更好地使用store.remove比model.destroy。 該按鈕可以點擊處理程序是這樣的:
destroy: function(button) {
var grid = button.up('grid');
var store = grid.getStore();
var selected = grid.getSelectionModel().getSelection();
if (selected && selected.length==1) {
store.remove(selected);
}
}
grid.store = store;
store.load({ params: { start: 0, limit: 20} });
grid.getView().refresh();
謝謝你沒有'store.load();' – 2012-06-07 17:45:28
不工作你確定你應該在異步加載後立即調用grid.view.refresh()嗎? – Christoph 2013-06-21 07:14:42
我有一個類似的問題。我需要做的只是在刪除處理程序中鍵入store.load();
。沒有必要隨後鍵入grid.getView().refresh();
。
除了所有這些,您還可以在刪除處理程序中鍵入store.remove(record)
; - 這確保已刪除的記錄不再顯示在網格上。
3.4中的另一種方法(不知道這是否合適的分機):假設每一行都有一個'刪除'按鈕,你可以使用這樣的刪除處理程序。
handler: function(grid, rowIndex, colIndex) {
var rec = grid.getStore().getAt(rowIndex);
var id = rec.get('id');
// some DELETE/GET ajax callback here...
// pass in 'id' var or some key
// inside success
grid.getStore().removeAt(rowIndex);
}
grid.getStore().reload({
callback: function(){
grid.getView().refresh();
}
});
大傻的和MMT的解決方案組合:
Ext.getCmp('yourGridId').getView().ds.reload();
這對我有用 – 2015-12-03 09:58:55
刷新網格商店
Ext.getCmp('GridId').getStore().reload();
這將刷新網格存儲和獲取新的數據。
這似乎不起作用。我的行中有80%剛剛消失 – 2014-10-01 14:43:38