私は GridPanel を持っており、ツールバーには「変更を拒否」と「変更を保存」という 2 つのボタンがあります。以下のコードは各ボタンの機能を示しており、これまでのところ期待どおりに機能しています。
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);
}
...
});
グリッド データがユーザーによって変更された場合にのみ、ボタン (またはその他のアクション) を有効/無効にする方法は? つまり、グリッドの行/フィールドがダーティになった場合 (およびその逆) のみですか? コードはどのリスナーをリッスンする必要がありますか?