Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Extjs 如何从内部引用选项卡Panels选项卡_Extjs_Extjs4 - Fatal编程技术网

Extjs 如何从内部引用选项卡Panels选项卡

Extjs 如何从内部引用选项卡Panels选项卡,extjs,extjs4,Extjs,Extjs4,我有一个tabpanel,它是表单的一部分(输入字段位于不同的选项卡上)。我需要在提交表单时通知用户表单是否有无效字段,即使它们不在当前选项卡上。我认为最好的办法是改变标签的颜色 问题是如何在不引入新id的情况下获取选项卡按钮的引用 这就是我试图做的,结果是一条死胡同,因为我得到了对选项卡内部主体的引用,并且在整个选项卡面板上又多了一个 ... xtype:'tabpanel', plain:true, activeTab: 0, height:190, margin: '10 0 0 0',

我有一个tabpanel,它是表单的一部分(输入字段位于不同的选项卡上)。我需要在提交表单时通知用户表单是否有无效字段,即使它们不在当前选项卡上。我认为最好的办法是改变标签的颜色

问题是如何在不引入新id的情况下获取选项卡按钮的引用

这就是我试图做的,结果是一条死胡同,因为我得到了对选项卡内部主体的引用,并且在整个选项卡面板上又多了一个

...
xtype:'tabpanel',
plain:true,
activeTab: 0,
height:190,
margin: '10 0 0 0',
items: [{
    title: 'Personal',
    layout:'column',
    border:false,
    items:[{
        columnWidth:.5,
        border:false,
        layout: 'anchor',
        defaultType: 'textfield',
        items: [{
             fieldLabel: 'Email',
             name: 'user[email]',
             allowBlank: false,
             listeners: {
                 'validitychange': function(th, isvalid, eOpts) {
                     if(!isvalid) {
                         alert(this.up().up().getId());
                     };
                 }
             },
             vtype:'email',
             anchor:'95%'
        }]
    }]
}]
试试这个: 从您的字段或面板中的任何其他组件(如按钮):


如果所讨论的选项卡不是第一个选项卡,则可以使用选择器中的任何选项卡属性,如下所示:…
down('tab[text=Example]”)
。您可以使用id属性,如果您有它,如果没有,您可以组成任何属性,并将其设置为有意义的东西,如“ref:FirstTab”

如果您有权访问选项卡面板,则您可以通过以下方式直接访问其选项卡栏中的项目:

this.up('tabpanel').getTabBar().items.get(0)
this.up('tabpanel').getTabBar().items.get(1)
等等


请参见

一旦您获得选项卡面板,将
gettabar().items[x]
成为您想要的吗?
gettabar().getComponent(x)
已工作。我面临类似的问题,您的解决方案看起来很好,但我有一个问题要问您。我有几个标签,订单可能会更改。如何将唯一的itemId应用于实际选项卡而不是容器?例如,在OP的代码中,我在Personal和column之间有
itemId:tabId
,但搜索该id会返回容器,而不是实际的选项卡
this.up('tabpanel').getTabBar().items.get(0)
this.up('tabpanel').getTabBar().items.get(1)