У меня есть полностью работающая liveSearchGridPanel в ExtJs. Ошибка возникает, когда я редактирую любую строку. Случается, что если обновленную строку нужно использовать, как в моем случае, когда я меняю возраст пользователя (сортирую по возрасту), строка идет вверх или вниз по сетке, но предыдущая запись остается там пока я не обновляю всю веб-страницу вручную. Скриншот нижеПроблема с плагином редактирования строк в Extjs
Мой прокси-модели:
fields: [ {name: 'id', type: 'int', persist: false},
{name: 'gender', type: 'auto'},
{name: 'name', type: 'auto'},
{name: 'age', type: 'int'}],
identifier: 'sequential', // to generate -1, -2 etc on the client
proxy: {
type: 'rest',
//format: 'json',
//appendId: false,
idParam: "id",
//limitParam:"",
//filterParam: "",
//startParam:'',
//pageParam:'',
url:'http://localhost:3000/posts',
api:
{
read : 'http://localhost:3000/db',
create: 'http://localhost:3000/posts',
update : 'http://localhost:3000/posts' ,
destroy : 'http://localhost:3000/posts'
},
headers: {'Content-Type': "application/json" },
reader: {
type: 'json',
rootProperty:'posts',
totalProperty: 'total'
},
writer: {
type: 'json'
}
В application.js, я определил ряд редактирования плагин как:
var rowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
listeners: {
cancelEdit: function(rowEditing, context) {
// Canceling editing of a locally added, unsaved record: remove it
if (context.record.phantom) {
store.remove(context.record);
}
},
edit: function(editor, e) {
// commit the changes right after editing finished
e.record.commit();
}
}
});
И мой магазин выглядит следующим образом:
storeId: 'peopleStore',
pageSize: 500,
//buffered: true,
//leadingBufferZone: 300,
pageSize: 5,
autoLoad: {start: 0, limit: 5},
autoSync: true,
sorters: [{
property : 'age',
direction:'ASC'
}],
groupField: 'gender'
Может ли кто-нибудь указать на мою ошибку? Я попытался перезагрузить мой магазин после редактирования в функции «edit» функции rowEditing, но это не сработало.
Спасибо за ваше время.
Вы пробовали 'Ext.data.StoreManager.lookup ('peopleStore'). Reload()'? – Tyr
@Tyr Спасибо, это сработало. Не стесняйтесь, можете ли вы выразить это как ответ, чтобы я мог принять его, и эта тема будет мной среди ответов на вопросы для будущих пользователей. –