ExtJs 3.3 GridPanel больше не восстанавливает настройки столбцов с помощью буферизационного Http-провайдера - PullRequest
1 голос
/ 10 ноября 2010

Я обновил до Ext 3.3, и внезапно настройки моего столбца GridPanel " width " и " hidden " больше не восстанавливаются, они остаются с настройками по умолчанию. Я использую самую последнюю версию Буферизирующего провайдера Http . Я действительно не знаю причину ошибки, если это из-за реализации этого State Provider или механизма подчиненного состояния Ext.

«Сохранение» настроек, кажется, работает правильно, будет вызван обработчик, и настройки будут правильно сохранены в базе данных. Настройки также корректно считываются из базы данных, и мои выходные данные для клиента содержат правильные настройки.

Мой (частично сгенерированный сервером) код в последнее время не изменился и выглядит примерно так:

var someState = [{"name":"someGridPanel","value":"o%3Acolumns%3Da%253Ao%25253Aid%25253Ds%2525253ADate%25255Ewidth%25253Dn%2525253A80%255Eo%25253Aid%25253Ds%2525253AMailSender%25255Ewidth%25253Dn%2525253A100%25255Ehidden%25253Db%2525253A1%255Eo%25253Aid%25253Ds%2525253ASubject%25255Ewidth%25253Dn%2525253A286%255Eo%25253Aid%25253Ds%2525253A ... "} ...];

Ext.state.Manager.setProvider(new Ext.ux.state.HttpProvider({saveUrl: 'someHandler.ashx'}));
Ext.state.Manager.getProvider().initState(someState);

// later...

var someGridPanel = new Ext.grid.GridPanel({"id":"someGridPanel","colModel":someColumnModel, ... });

Что-то важное изменило в государственных механизмах, которые я пропустил? В документации сказано, что мне не нужно указывать stateId , когда я устанавливаю id для компонента. Но я вижу, что теперь в документации Ext есть объект Column , которого раньше не было. Может быть, им нужен id сейчас?

Любые советы и помощь будут с благодарностью.

1 Ответ

3 голосов
/ 10 ноября 2010

Получил ответ в сообщении на форуме , проблема в самом ExtJs 3.3. Это переопределение работает для меня:

Ext.override(Ext.grid.ColumnModel, {
    setState: function (col, state) {
        Ext.apply(this.lookup[col], state);
    }
});

Обновление: исправлено в 3.3.1.

...