2012-12-28 37 views
0
切換

我捉迷藏ExtJS的4.1,有一個開啓手柄定義如下:標籤不會在ExtJS的

var tabs = (typeof tabs != 'undefined') ? tabs : this.getMainTabs(); 
tabs = (typeof tabs == 'string') ? Ext.getCmp(tabs) : tabs; 
var have_record = (typeof record != 'undefined' && record != ''); 

var id = have_record ? record.id : 'new'; 
var tab_id = 'tab-' + xtypeString + '-' + id; 
var checkTab=Ext.getCmp(tab_id); 

if(checkTab){ 
    tabs.setActiveTab(checkTab); 
} else { 
    var default_params = {xtype: xtypeString, closable : true, id : tab_id}; 
    var override_params = (typeof params != 'undefined') ? params : {}; 
    params = Ext.merge(default_params, override_params); 

    var checkTab = tabs.add(params); 
    tabs.setActiveTab(checkTab); 
    (have_record) ? checkTab.setRecord(record) : checkTab.setRecord(); 
} 
return checkTab; 

所以發生了什麼是我們創建初始標籤(標籤-A),然後我們去回到主屏幕創建第二個標籤(tab-b)。現在當我去點擊tab-a時,沒有任何反應。當我回到主屏幕,然後點擊tab-a時,它會打開tab-b。

有人想過爲什麼會發生這種情況嗎? (讓我知道如果你需要更多的數據...似乎相當自我解釋我在下面做什麼,但這可能是因爲我一直盯着這永遠)

繼承人的選項卡與xtype我們正在創造

{ 
    xtype: 'tabpanel', 
    region: 'center', 
    id: 'searchtabs', 
    itemId: 'searchtabs', 
    listeners: { 
     tabchange: { 
      fn: me.onSearchtabsTabChange, 
      scope: me 
     } 
    } 
} 
+0

這可能是標籤本身定義的問題。你能提供與'xtypeString'中的任何內容相對應的代碼嗎?所以如果'xtypeString'可能是'MyTab',你能顯示MyTab的代碼嗎?添加了 – Izhaki

+0

。這就是我創建的xtype。 –

+0

看起來好像我在其中一個項目上設置itemId時應該是id。 ...所以現在就解決了。 @Izhaki你是否想在迴應中提及xtypestring的事情,我會給你信用。這是我創建的xtype導致了問題。 –

回答

0

有可能是您的xtype定義一個問題,你要爲iditemId

另請注意,創建多個具有相同id的組件可能會導致以後出現很多麻煩。如果要創建組件的多個實例,請確保在創建時指定不同的id - 不要在xtype定義中指定一個實例。