I ' м пытаюсь научиться использовать сетки EXTJS для некоторых простых операций CRUD над таблицей в приложении администратора.
У меня есть простая сетка, которая позволяет кому-то редактировать пользователей, хранилище определяется как:
var userDataStore = new Ext.data.Store({
id: 'userDataStore',
autoSave: false,
batch: true,
proxy: new Ext.data.HttpProxy({
api: {
read: '/Admin/Users/All',
create: '/Admin/Users/Save',
update: '/Admin/Users/Save'
}
}),
reader: new Ext.data.JsonReader(
{
root: 'Data',
idProperty: 'ID',
totalProperty: 'total',
successProperty: 'success',
messageProperty: 'message'
}, [
{ name: 'ID', type: 'string', allowBlanks: false },
{ name: 'NT_ID', type: 'string', allowBlank: false },
{ name: 'EMail', type: 'string', allowBlank: false },
{ name: 'Name', type: 'string', allowBlank: false },
{ name: 'Enabled', type: 'bool', allowBlank: false },
{ name: 'CurrentRoleCode', type: 'string', allowBlank: false}]
),
writer: new Ext.data.JsonWriter(
{
encode: false,
writeAllFields: true,
listful: true
})
});
Это связано в сетку, и я могу без проблем загружать и сохранять пользователей. Кнопка сохранения выглядит следующим образом:
var saveButton = new Ext.Button({
text: 'Save',
disabled: true,
handler: function() {
userDataStore.save();
pageState.ClearDirty();
saveButton.disable();
}
});
Однако при создании нового пользователя сообщение JSON POST для пользователя отправляется в ту же конечную точку службы REST, что и «Обновление», с той лишь разницей, что значение идентификатора не публикуется ( так как один устанавливается только в хранилище при загрузке с сервера).
Это работает, и я могу создавать пользователей.
Служба сохранения REST возвращает созданную строку с новым идентификатором базы данных, и я был при условии, что EXTJS автоматически привяжет новый сгенерированный идентификатор базы данных к строке. Это позволяет пользователю дальше редактировать эту строку, Я надеялся, что EXTJS поймет это и обновит значения строк.