2016-08-02 59 views
2

我有一個窗口,並有兩個項目。在panel的第2項目,面板的項目在afterrender推動一部分數據。之後,所有其他手術都發生了,但窗戶關閉沒有發生。分機窗口沒有接近

afterrender: function(){ 
    var p = this; 
    var grid = Ext.getCmp('GRID'); 
    var record = grid.getSelectionModel().getSelections(); 
    var actionRecItemsLen = record.length; 
    var recItem = p.items.items; 
    for(var i=0;i<actionRecItemsLen; i++){ 
      var clsName = new Recordrfc(); // Getting a container class. 
      recItem.push(clsName); 
     } 
      this.doLayout(); 
} 

這裏的時候,我使用recItem.push(clsName);然後close圖標和取消按鈕不工作。有時頁面無響應。我在做什麼可能的錯誤。

+0

什麼是你的Recordrfc()? – UDID

回答

0

您應該使用容器的添加方法(Window是容器)來添加新組件。 items屬性只是用於存儲添加compoentns的集合。爲了向容器添加新組件需要更多的操作,而不僅僅是將對象添加到收集項目,並且所有這些操作都放置在add方法中。試試這個:

afterrender: function(){   
     var grid = Ext.getCmp('GRID'); 
     var record = grid.getSelectionModel().getSelections(); 
     var actionRecItemsLen = record.length;   
     for(var i=0; i < actionRecItemsLen; i++){ 
      var clsName = new Recordrfc(); // Getting a container class. 
      this.add(clsName); 
     } 

     this.doLayout(); 
    } 
+0

是的,但在這種情況下,它只添加一個'clsName'。那樣for循環的存在就不重要了。 – David

+0

感謝您的回答。 – David

+0

您可以在每次循環迭代中創建新項目。我認爲我的代碼應該與你的代碼完全一樣,但我使用方法add()來添加新組件。因此,它應該在網格中的每個選擇上創建一個新的Recordrfc實例,並將其添加到組件中。我認爲Recordrfc的問題,也許它不能被創建多次?讓我們嘗試添加兩次手動: 'afterrender:function(){ var clsName1 = new Recordrfc(); this.add(clsName1); var clsName2 = new Recordrfc(); this.add(clsName2); this.doLayout(); }' – Selmaril