Extjs сетки восстановить столбцы (скрыть / показать), ширина, позиция - PullRequest
3 голосов
/ 10 февраля 2012

Я хочу сбросить сетку столбцов (скрыть / показать), ширину, позиции без перезагрузки страницы.Я пытаюсь это

Ext.getCmp('inventoryResultGrid').applyState(firstState);

, но это работает только для позиций.

Ответы [ 2 ]

2 голосов
/ 06 декабря 2012

Попробуйте перенастроить метод следующим образом.

var grid = Ext.getCmp('inventoryResultGrid'); 
grid.reconfigure(grid.store, grid.initialConfig.columns);

Документацию можно найти здесь http://docs.sencha.com/ext-js/4-1/#!/api/Ext.grid.Panel-method-reconfigure

0 голосов
/ 16 мая 2012

Какая версия ExtJS?

Из рассмотрения источников GridPanel.applyState () в EXtJS 3.1.4: Применение состояния после столбцов действительно только сохраняет значения в конфигурации модели столбца, но не изменяетсятекущие настройки (кроме позиции).

Что-то подобное должно делать (не проверено):

function restoreColumnState(grid, state) {
    var cm = grid.getColumnModel(),
        columns = state.columns,
        columnState,
        column,
        columnIndex;
    cm.suspendEvents(true);
    for (var i = 0, len = columns.length; i < len; i++) {
        columnState = columns[i];
        column = cm.getColumnById(columnState.id);
        if (column) {
            columnIndex = cm.getIndexById(columnState.id);
            cm.setHidden(i, columnState.hidden);
            cm.setColumnWidth(i, columnState.width);
            if (columnIndex != i) {
                cm.moveColumn(columnIndex, i);
            }
        }
    }
    cm.resumeEvents();
}
...