2017-04-10 42 views
0

我目前工作ExtJs的父標籤,我被困在那裏我想通過所有部件進行迭代,找到每個組件的父標籤的地方。ExtJS的:如何獲得控制

Ext.application({ 
    name : 'Fiddle', 
    launch : function() { 
     Ext.create('Ext.tab.Panel', { 
      width: 300, 
      height: 200, 
      activeTab: 0, 
      items: [ 
       { 
        title: 'Tab 1', 
        bodyPadding: 10, 
        items : [{ 
       xtype: 'fieldset', 
       itemId: 'fieldsetId', 
       items: [{ 
          xtype: 'checkbox', 
          fieldLabel: 'Check 1' 
         },{ 
          xtype: 'checkbox', 
          fieldLabel: 'Check 2' 
         },{ 
          fieldLabel: 'Combo 1', 
          xtype: 'combobox', 
          store: ['value1','value2','value3'] 
         }] 
       }, 
       { 
        xtype: 'button', 
        text: 'Reset', 
       }] 
       }, 
       { 
        title: 'Tab 2', 
        html : 'Another one', 
        items: [{ 
         xtype: 'button', 
         text: 'Test', 

        }] 
       } 
      ], 
      renderTo : Ext.getBody() 
     }); 
    } 
}); 

在上面的代碼中,當我經歷了所有組件進行迭代,並記錄父標籤無論是名稱Tab 1Tab 2

回答

0

當你通過所有組件迭代,只是做

field.up().up() 

其中字段是選項卡的組件,上面的語句將返回父項tabpanel等等

field.up().up().title 

將返回「標籤1」

以同樣的方式對標籤2個組件將是

field.up() only. 

如果你只有一個循環或東西要經過的所有組件,那麼你可以把條件,

如果(field.up())返回您的面板,然後閱讀它的標題 其他做field.up()。up(),然後閱讀標題。

我希望這可以解決你的問題。

+0

上述問題中得到樣品的姓名,職務只是一個樣本。可能有多個子字段,例如Fieldset可以有容器和控件駐留在其中。所以只有'field.up()。up()'在這種情況下不起作用 – user2988458

+0

試試這個:field.findParentByType('tabpanel')。tabBar.items.items [field.getTabIndex()]。title –

0

可以使用,field.up(「的TabPanel」),以獲得一個tabpanel的引用,然後從引用可以爲一個tabpanel