【问题标题】:ExtJs: How to get parent tab of controlExtJs:如何获取控件的父选项卡
【发布时间】:2017-04-10 06:24:21
【问题描述】:

我目前正在处理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 1还是Tab 2

【问题讨论】:

    标签: extjs extjs4.2


    【解决方案1】:

    每当您遍历所有组件时,就这样做

    field.up().up()
    

    其中字段是选项卡的组件,上面的语句将返回父选项卡面板,因此

    field.up().up().title
    

    将返回“Tab 1”

    与选项卡 2 组件的方式相同

    field.up() only.
    

    如果您只有一个循环或其他东西要遍历所有组件,那么您可以设置一个条件

    if(field.up()) 将面板返回给您,然后阅读它的标题 否则执行 field.up().up() 然后阅读标题。

    希望这能解决你的问题。

    【讨论】:

    • 上述问题中的示例只是一个示例。可能有多个子字段,例如 Fieldset 可以有容器和控件驻留在其中。所以只有field.up().up()在这种情况下不起作用
    • 试试这个:field.findParentByType('tabpanel').tabBar.items.items[field.getTabIndex()].title
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多