所以我有grid
看起来像这样
itemId: 'someGrid',
xtype: 'grid',
title: 'Some Grid',
store: 'SomeStore',
selType: 'cellmodel',
plugins: [
Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 2
})
],
columns: [
{ text: 'column1', dataIndex: 'dataIndex1', flex: 2.7 },
{ xtype: 'checkcolumn', text: column2, dataIndex: 'dataIndex2', flex: 2.7 },
{ xtype: 'checkcolumn', text: column3, dataIndex: 'dataIndex3', flex: 3 },
{
text: column4, dataIndex: 'dataIndex4', flex: 3.85,
editor: {
xtype: 'combobox',
itemId: 'someCOmbo',
store: 'SomeStoreOfCombo',
displayField: 'DataName',
valueField: 'DataId',
allowBlank: false,
editable: false,
}
},
{
text: column5, dataIndex: 'dataIndex5', flex: 3,
editor: {
xtype: 'textfield',
allowBlank: false,
}
},
{
text: column6, dataIndex: 'dataIndex6', flex: 3.1,
editor: {
xtype: 'textfield',
allowBlank: false,
}
},
{ text: column7, dataIndex: 'dataIndex7', flex: 1.7 },
{ dataIndex: 'Id', hidden: true }
],
checkcolumns
和column4
5和6都是可编辑的。我在网格下面有按钮提交更改。那么如何获得对网格所做的所有更改,以便我可以提交它?
答案 0 :(得分:0)
直接编辑,因此您不需要按钮:
plugins:[ Ext.create('Ext.grid.plugin.CellEditing',{clicksToEdit: 2,
Listeners:[edit: function(editor, e){if (e.value !== e.originalValue) {this.someGrid.getStore().getById(e.record.data.ID).commit();}}]})],
可能需要稍微调整,因为我通常使用Ext.Net并且只是尝试翻译。但是你应该理解它背后的想法;)
如果您希望按钮使用<store>.sync();
作为点击处理程序
(编辑:我不知道有没有让linebreaks工作 - 有人可以编辑吗?)