У меня есть этот пример кода из Sencha's websiteКак работает редактирование ячейки с менеджером магазина extjs?
Ext.onReady(function()
{
Ext.create('Ext.data.Store', {
storeId:'simpsonsStore',
fields:['name', 'email', 'phone'],
data:{'items':[
{"name":"Lisa", "email":"[email protected]", "phone":"555-111-1224"},
{"name":"Bart", "email":"[email protected]", "phone":"555-222-1234"},
{"name":"Homer", "email":"[email protected]", "phone":"555-222-1244"},
{"name":"Marge", "email":"[email protected]", "phone":"555-222-1254"}
]},
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'items'
}
}
});
Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
store: Ext.data.StoreManager.lookup('simpsonsStore'),
columns: [
{header: 'Name', dataIndex: 'name', editor: 'textfield'},
{header: 'Email', dataIndex: 'email', flex:1,
editor: {
xtype: 'textfield',
allowBlank: false
}
},
{header: 'Phone', dataIndex: 'phone'}
],
selType: 'cellmodel',
plugins:
[{
ptype: 'cellediting',
clicksToEdit: 1
}],
height: 200,
width: 400,
renderTo: 'grid'
});
});
Этот ptype: 'cellediting'
плагин позволяет редактировать встроенные ячейки, просто нажав на textfield
. Я просто не могу найти сообщений о , как и где сохраняется измененное значение? Как добавить слушателя в ячейку, чтобы после каждого изменения я смог alert()
новое значение?
Спасибо за любые советы ...
Thats идеально. Но в случае сбоя синхронизации хранилища, как вы отмените вышеуказанное изменение? потому что, хотя запись не изменилась, визуально она по-прежнему отображает неверную информацию? Я говорю конкретно о контрольном столбце сетки – aMazing
Это другой вопрос, но вы бы использовали обратный вызов отказа метода синхронизации, и внутри него вы бы назвали ['reject'] (http://docs.sencha.com/extjs/ 4.2.0/#!/Api/Ext.data.Model-method-reject) для каждой записи. – rixo
То, что я думал, отменит. И фактически это отменяет значение записи, но на сетке оно все еще показывает противоположное (значение установлено в beforeedit.) – aMazing