У меня есть магазин ExtJS примерно так:
var dataStore = new Ext.data.JsonStore({...});
Я использую его вместе с фабрикой, чтобы получить GridPanel:
function CreateGrid(config) {
return new Ext.grid.GridPanel({
store: dataStore,
...
})
};
Теперь, когда я запускаю этот код:
new Ext.Window({
closable: true,
items: CreateGrid(),
}).show();
При первом запуске сетка работает нормально. Однако, если я закрою окно и снова открою другое, я не смогу больше ни сортировать столбцы, ни обновлять хранилище.
Я точно определил проблему в магазине, и все, что с ней происходит, когда сетка разрушена. Если я вместо этого поменяю свою функцию CreateGrid()
на
function CreateGrid(config) {
return new Ext.grid.GridPanel({
store: new Ext.data.JsonStore({...}),
...
}
};
Он прекрасно работает, за исключением того, что я каждый раз получаю новый магазин вместо того, чтобы повторно использовать старый.
Как мне исправить эту проблему, чтобы я мог уничтожить сетку, не испортив магазин? За этим стоит мысль, что я хочу сохранить хранилище, чтобы сохранить сортировку и фильтрацию столбцов, но уничтожить сетку, чтобы сэкономить память.