У меня была такая же проблема, когда я пытался редактировать свою сетку в IE7 (не проблема с Chrome).
Я думаю, проблема заключается в том, что мой обработчик событий с сохранением кнопки называется BEFORE, когда событие onBlur может передать ячейке редактирования, чтобы завершить редактирование и поместить его значение в хранилище.
Что я сделал, чтобы обойти это было:
(1) Определение моей панели редактора сетки отдельно.
var myPanelGridEditor = Ext.create('Ext.grid.plugin.CellEditing', {
ptype: 'cellediting',
clicksToEdit: 1
});
(2) Определите мою панель сетки, которая включает в себя мой редактор сетки в плагинах.
var myGrid = Ext.create('Ext.grid.Panel', {
id: 'myPanelGrid', store: myStore, viewConfig: {markDirty: false},
columnLines: true,
columns: [
{header: 'HE01', dataIndex: 'vp01', sortable: false, maxWidth: 40, field: {xtype: 'numberfield', minValue: 0, hideTrigger: true, decimalPrecision: 4 }},
{header: 'HE02', dataIndex: 'vp02', sortable: false, maxWidth: 40, field: {xtype: 'numberfield', minValue: 0, hideTrigger: true, decimalPrecision: 4 }}
],
selModel: Ext.create('Ext.selection.RowModel', {mode: 'SINGLE'}),
plugins: [myPanelGridEditor],
height: 73, width: 1010, margin: '0 0 12 30'
});
(3) Добавить вызов completeEdit() в кнопке моего сохранить обработчик события
{
text: 'Save',
formBind: true,
id: 'saveButton',
handler: function() {
myPanelGridEditor.completeEdit();
...
}
}
В теории вы должны быть в состоянии назвать
myGridPanel.editingPlugin.completeEdit();
в вашем спасти обработчиком но в Ext JS 3.3.1 это свойство было null.
Спасибо за помощь, я попробовал, но это не сработало, я хотел бы объяснить далее. Сценарий заключается в том, что я в редакторе столбцов, и вместо того, чтобы щелкнуть за пределами редактора, чтобы пометить запись, я просто нажимаю кнопку сохранения. Теперь, когда я проверяю на стороне сервера, я не получаю запись, которая редактировалась, прежде чем перейти к кнопке сохранения. – asolvent
Хм .. пытались ли вы прослушать событие «edit» cellEditing? см. мой обновленный ответ. – wens
К сожалению, это не сработало.Похоже, это по дизайну. – asolvent