1

extjsデザイナー1.2で作業しています。クリックするとウィンドウを開くパネル上のボタンがあります。ウィンドウには、jsファイルで次のようにレンダラーを適用したグリッドがあります。問題は、ウィンドウを初めて開いたときにレンダラーがうまく機能することですが、ウィンドウを閉じて再度開くと、効果が消えます。

Ext.define('MyApp.view.TestPanel', {
    extend: 'MyApp.view.ui.TestPanel',

    initComponent: function() {
        var me = this;
        me.callParent(arguments);
        Ext.data.StoreManager.lookup('Test').load();
        me.down('button[id=testbutton]').on('click',me.onTestBtnClick,me); 
    },

    onTestBtnClick:  function(){

        var win = new Ext.create('MyApp.view.TestWindow');
        win.show();
        win.down('#testgrid').columns[0].renderer=function(val){
             return '<span style="color:red;">' + val + '</span>';
            }

    }
});

観察:ui.jsでレンダラーを使用する場合、つまりデザイナーからプロジェクトをエクスポートすることによって生成されたファイルを使用する場合、上記の問題に直面しません。この問題の解決策は何ですか?

4

1 に答える 1

0

その中のウィンドウとグリッドの実装を指定していただけますか。ウィンドウを閉じるアクションを確認するだけです

closeAction:文字列

ヘッダーを閉じるツールがクリックされたときに実行するアクション:'destroy':ウィンドウをDOMから削除し、ウィンドウとすべての子孫コンポーネントを破棄します。ウィンドウは、showメソッドを介して再表示することはできません。'hide':可視性を非表示に設定し、負のオフセットを適用してウィンドウを非表示にします。ウィンドウは、showメソッドを介して再表示できるようになります。

注:この動作は変更されました!設定は、適切なcloseActionを呼び出すcloseメソッドに影響します。デフォルトは「破棄」です

IDを介してグリッドにアクセスしていて、クローズアクションが非表示になっている場合は、毎回グリッドが同じIDで作成される可能性が高いためです。そして、idが確かに同じである場合、これは機能しません。

于 2011-11-24T07:03:45.457 に答える