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