2011-09-15 7 views
1

私はextjsデザイナーと協力しています。1.2。クリックするとウィンドウが開くパネル上のボタンがあります。ウィンドウには、jsファイルの次のようなレンダラーを適用したグリッドがあります。問題は、ウィンドウが最初に開くときレンダラーがうまく動作しますが、ウィンドウを閉じると&が再び開くと、エフェクトがオフになります。extjs 4グリッドレンダラー

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すなわち、ファイル内のレンダラを使用する場合は、私が述べた問題の上に顔をいけません。この問題の解決策は何ですか?

+0

パネル/グリッド/ウィンドウはどのように定義されていますか?あなたのシナリオを複製しようとしましたが、期待通りに動作しているようです。http://jsfiddle.net/ugYAS/ – DashK

答えて

0

ウィンドウとグリッドの実装を指定してください。文字列

近いヘッダーツールがクリックされたときに実行するアクション: 「破棄」: DOMからウィンドウを削除し、それを破壊し、すべての子孫コンポーネント ちょうど

closeActionウィンドウを閉じるアクションをチェック。このウィンドウは、 showメソッドで再表示することはできません。 'hide': visibilityをhiddenに設定し、負のオフセットを適用してウィンドウを非表示にします。このウィンドウは、showメソッド を介して再表示できるようになります。

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

IDを使用してグリッドにアクセスしているときに、クローズアクションが非表示の場合、グリッドが同じIDで作成される可能性が非常に高いためです。 idが同じであれば、これは動作しません。