2011-09-15 215 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

如何定義Panel/Grid/Window?我試圖複製你的場景,但它看起來像預期的那樣工作:http://jsfiddle.net/ugYAS/ – DashK

回答

0

你可以指定窗口和網格的實現嗎? 只是檢查關閉窗口作用

closeAction:字符串

採取點擊了關閉頁眉工具時的動作: 「摧毀」: 從DOM刪除窗口並摧毀它和所有的後續組件。該窗口將無法通過 顯示方法重新顯示。 '隱藏': 通過設置隱藏和應用負偏移的可見性來隱藏窗口。該窗口將可通過 顯示方法重新顯示。

注意:此行爲已更改!設置會影響關閉方法 ,該方法將調用相應的closeAction。默認爲:「破壞」

因爲當你通過ID訪問網格,並且如果關閉動作被隱藏,那麼每次使用相同ID創建網格時都很有可能。如果id相同,這是行不通的。