Здравствуйте.
я занимаюсь созданием интерфейса на ExtJs 3.3.1, в котором динамически должны отображаться PopUp окна, в которых динамически геренятся GridPanel.
т.к. весь интерфейс динамический, и все его поля, и содержимое должно генерироваться на лету, был написан специальный метод, который генерит массив со столбцами, и store для этого гридника:
getFlatGridConfiguration: function (objectId) {
var feture = new Feature('someurl');
var cmd = { procedure: 'GetEtalonColumnsList', args: { P_ID_OBJECT: objectId} };
this.MDdict_Columns = feture.Execute(cmd);
//Формируем набор столбцов
var clmn = [];
fld = [];
for (i = 0; i < this.MDdict_Columns.length; i++) {
if (this.MDdict_Columns[i].DISPLAY_SIZE == 0)
continue;
clmn.push({ id: 'cl' + this.MDdict_Columns[i].NM_SOURCE, header: this.MDdict_Columns[i].NM_DISPLAY, sortable: true, width: this.MDdict_Columns[i].DISPLAY_SIZE, dataIndex: this.MDdict_Columns[i].NM_SOURCE });
fld.push(this.MDdict_Columns[i].NM_SOURCE);
}
//Формируем источник данных
var ds = new TPageJsonStore();
ds.fields = fld;
ds.PageSize = 20;
ds.writer = new Ext.data.JsonWriter({ fields: fld });
ds.reader = new Ext.data.JsonReader({ fields: fld });
ds.url = 'someurl';
ds.loadCommand = { procedure: 'SomeProcedureName', args: { P_ID_OBJECT: objectId} };
return { Columns: clmn, Store: ds };
},
дело в том, что этот метод вызывается многократно, и для каждого гридника в initComponent есть строки, которые вызывают этот метод
var dictConf = getFlatGridConfiguration(this.objectId);
this.columns = dictConf.Columns;
this.store = dictConf.Store;
проблема в том, что после того, как я открываю еще одно окно с гридником, после работы с ним, я его закрываю, и возвращаюсь к первому, и его store = null.
сначала я подумал, что проблема в том, что они используют один и тот же TPageJsonStore, и я сделал массив из них, и использовал новый экземпляр, но это не помогло. В массиве сам store присутствует, но у гридника, store = null.
второй день уже не знаю, как побороть данную, проблему, и с чем это связанно. может быть кто-то сможет мне с этим помочь?