ExtJs4 - динамически загружать столбцы сетки? - PullRequest
2 голосов
/ 02 июня 2011

Мне удалось динамически загрузить столбцы сетки в ExtJs3.
Однако мне не удалось заставить его работать в ExtJs4.
Я могу загружать столбцы динамически, но не могу отобразить их в сетке.
Когда магазин загружается, я строю модель столбцов, а затем устанавливаю столбцы сетки в качестве этой модели столбцов. После установки столбцов сетки я попытался вызвать метод grid.doLayout(), а также метод grid.getView().refresh(), но столбцы никогда не отображаются.
Ниже приведен пример кода:

store.on('load', function(st){
    var columnModel = store.data.items;
    grid.columns = columnModel;
    grid.doLayout();

    /**
      * I also tried doing it this way
      **/
    //grid.getColumnModel().setConfig(columnModel);
    //grid.getView().refresh();
});

Кажется, что свойство столбцов сетки установлено правильно, но эти столбцы никогда не отображаются.
Просто для большей ясности модель столбца, которую я установил как свойство столбцов сетки, выглядит следующим образом:

[{
    header: 'Name',
    dataIndex: 'empname'
},{
    header: 'Address',
    dataIndex: 'address'
},{
    header: 'Department',
    dataIndex: 'dept'
}]

1 Ответ

1 голос
/ 07 июня 2011

Чтобы изменить столбцы сетки, необходимо вызвать сетку. изменить конфигурацию , вы не можете просто изменить свойство столбцов.Переконфигурирование должно инициировать все соответствующие события обновления и повторного отображения для вас.

ergo, ваш код должен выглядеть так:

store.on('load', function(st){
   var columnModel = store.data.items;
   grid.reconfigure(store, columnModel);
});
...