代码之家  ›  专栏  ›  技术社区  ›  herzmeister

extjs 3.3 gridpanel不再使用缓冲HTTP提供程序还原列设置

  •  1
  • herzmeister  · 技术社区  · 14 年前

    我更新到了ext 3.3,突然我的gridpanel专栏 宽度 “和” 隐藏的 “设置不再恢复,它们保持默认设置。我使用最新版本的 Buffering Http Provider . 我真的不知道故障的原因,如果是因为这个状态提供者的实现或者ext的underyling状态机制。

    “保存”设置似乎工作正常,将调用处理程序并将设置正确存储到数据库中。这些设置也将从数据库中正确读取,并且我对客户机的输出包含正确的设置。

    我的(部分由服务器生成的)代码最近没有更改,看起来像这样:

    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 当我设置 身份证件 对于组件。但我看到现在 ext文档中以前不存在的对象。也许这些需要 身份证件 现在?

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

    1 回复  |  直到 11 年前
        1
  •  3
  •   herzmeister    13 年前

    答案在A中 forum post ,问题在extjs 3.3本身。此覆盖对我有效:

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

    更新:3.3.1中已修复。