ExtJs:如何获取控件的父选项卡

ExtJs:如何获取控件的父选项卡,extjs,extjs4.2,Extjs,Extjs4.2,我目前正在从事ExtJs工作,我被困在一个需要迭代所有组件并找到每个组件的父选项卡的地方 Ext.application({ name : 'Fiddle', launch : function() { Ext.create('Ext.tab.Panel', { width: 300, height: 200, activeTab: 0, items: [

我目前正在从事
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()
        }); 
    }
});

在上面的代码中,当我遍历所有组件并记录父选项卡的名称时,无论它是
选项卡1
还是
选项卡2

,只要在遍历所有组件时执行即可

field.up().up()
其中field是选项卡的组件,上面的语句将返回父选项卡面板,依此类推

field.up().up().title
将返回“选项卡1”

对于表2组件,将采用相同的方式

field.up() only.
如果只有一个循环或某个东西要通过所有组件,那么可以设置一个条件

如果(field.up())返回面板,则读取其标题 else do field.up().up(),然后阅读标题


我希望这能解决您的问题。

您可以使用,field.up('tabPanel')获取tabPanel的引用,然后从引用中可以获取tabPanel的名称、标题。

上面讨论的示例只是一个示例。可以有多个子字段,就像Fieldset可以有容器和控件驻留在其中一样。因此,只有
field.up().up()
在这种情况下不起作用请尝试以下操作:field.findParentByType('tabpanel').tabBar.items.items[field.getTabIndex()].title