Какая версия 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();
}