1

Ext 3.3にアップデートしたところ、突然、GridPanelの列の「width」と「hidden」の設定が復元されず、デフォルト設定のままになりました。私はBufferingHttpProviderの最新バージョンを使用しています。この状態プロバイダーの実装または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

フォーラムの投稿で答えを得ました。問題はExtJs3.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 に答える