我有一個GridPanel和工具欄內有兩個按鈕「拒絕更改」和「保存更改」。下面的代碼顯示了每個按鈕的功能,到目前爲止按照預期工作。ExtJS:什麼是網格面板事件檢測網格數據更改
Ext.define('APP.view.MyGrid' ,{
extend: 'Ext.grid.Panel',
...
initComponent: function() {
var me=this;
me.store = myStore;
me.plugins = [
Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1, autoCancel: false
}),
];
me.rejectBtn = {
xtype:'button', id:'kbsGridCancelBtn', text:'Reject changes',
handler: function() { me.store.rejectChanges(); }
},
me.saveBtn = {
xtype:'button', id:'kbsGridSaveBtn', text:'Save changes',
handler: function() { me.store.sync(); }
},
me.bbar = Ext.create('Ext.toolbar.Toolbar', {
items : [{ xtype: 'tbfill'},me.rejectBtn,'-',me.saveBtn]
});
me.callParent(arguments);
}
...
});
如何啓用/禁用按鈕(或任何其它動作)只有在網格數據已經由用戶修改?即只有當網格行/域變髒時(反之亦然)?我的代碼應該聽哪個監聽器?
感謝您的回覆;我試圖聽'datachanged'。但是當我改變網格中的數據,並且因此通過'set()',然後'commit()'手動改變商店的記錄(類型爲'Ext.data.Model')時,這個事件仍然沒有被觸發:/ –
我改變了我的回答 –
我沒有盲目地複製你的代碼示例,因爲上面提到的代碼結構是爲通信而簡化的。找到了另一個解在我吃完東西后會用答案更新這個問題;無論如何,謝謝+ 1ed :) –