Как обратиться к вкладке вкладок, изнутри - PullRequest
3 голосов
/ 10 декабря 2011

У меня есть вкладка, которая является частью формы (поля ввода находятся на разных вкладках). Мне нужно сообщить пользователю о представлении, если форма имеет недопустимые поля, даже если они не находятся на текущей вкладке. Я думаю, что лучшим способом было бы изменить цвет вкладок.

Вопрос в том, как получить ссылку для кнопки вкладки, не вводя новый идентификатор?

Вот то, что я пытался сделать, оказалось тупиком, так как я получил ссылку на внутреннее тело вкладки, и еще один - на всю панель вкладок

...
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%'
        }]
    }]
}]

Ответы [ 2 ]

5 голосов
/ 11 декабря 2011

Попробуйте это: Из вашего поля или любого другого компонента на панели (например, кнопки):

this.up('tabpanel').down('tab').el.applyStyles('background:red')

если рассматриваемая вкладка не является первой вкладкой, вы можете использовать любое свойство вкладки в селекторе, например: ... down('tab[text=Example]'). Вы можете использовать свойство id, если оно у вас есть, если нет, вы можете просто создать любое свойство и установить для него что-то значимое, например "ref: FirstTab".

0 голосов
/ 18 июня 2013

Если у вас есть доступ к tabPanel , то вы можете получить доступ к элементам tabBar напрямую с помощью:

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

и т.д.

См. http://docs.sencha.com/extjs/4.1.3/#!/api/Ext.tab.Bar-property-items

...