2011-11-05 102 views
1

我有一個簡單的tabpanel。我想獲取當前活動選項卡的子組件並銷燬它們,並且doLayout()。下面的代碼將無法正常工作:如何獲取extjs4中tabpanel的活動選項卡的子組件?

Ext.getCmp('centertabpanel').getActiveTab().items.destroy(); 
+0

你使用的是Ext 3還是4? – Ryan

+0

你是否有任何錯誤? – Ryan

+0

@ryan我沒有得到任何錯誤,也沒有什麼happns.probably我的問題是如何獲得組件的所有子元素並銷燬它們? –

回答

2

有一點要記住這裏的是,在的TabPanel在ExtJS的標籤只需要在ExtJS的3 BoxComponent或ExtJS的4. Component這意味着選項卡不需要持有兒童元素。但是,如果你知道你的centertabpanelContainers標籤,那麼你有兩個選擇:

如果你的標籤是具有autoDestroy設置爲true(這是默認)的容器,那麼只需使用:

Ext.getCmp('centertabpanel').getActiveTab().removeAll(); 

如果你想設置autoDestroy爲false,那麼使用下面的代碼:

Ext.getCmp('centertabpanel').getActiveTab().each(function(item, idx, len) { 
     item.destroy(); 
    }); 

.each()MixedCollection定義。它將按順序針對所有子項執行第一個參數中的函數。作爲一個方面說明,如果你在函數內返回false,那麼它將停止所有元素的迭代。

相關問題