1

我更新到 Ext 3.3,突然我的 GridPanel 的列“宽度”和“隐藏”设置不再恢复,它们保持默认设置。我使用最新版本的Buffering Http Provider。我真的不知道故障的原因,是因为这个 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, ... });

我错过的状态机制有什么重要的变化吗?文档说我在为组件设置id时不需要指定stateId。但是我看到Ext 文档中现在有一个以前不存在的Column对象。也许这些现在需要一个ID

任何提示和帮助将不胜感激。

4

1 回答 1

3

在论坛帖子中得到了答案,问题出在 ExtJs 3.3 本身。这个覆盖对我有用:

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

更新:现在已在 3.3.1 中修复。

于 2010-11-10T20:43:19.557 回答