Надеюсь, что следующий код поможет вам:
btn = {
id: 'button',
width : 130,
height : 35,
text: 'Button',
listeners : {
click : function(){
var activetab = Ext.getCmp('extabs').getActiveTab();
var activetabid = activetab.getId();
if(activetabid == 'regiontab'){
alert('Clicked button in region Tab');
}else if(activetabid == 'countrytab'){
alert('Clicked button in country Tab');
}
}
}
};
toolbar = Ext.create('Ext.Toolbar',{
id:'extoolbar',
width : 350,
height : 40
});
country = {
id : 'countrytab',
title : 'Country'
};
region = {
id : 'regiontab',
title : 'Region'
};
var exTabs = Ext.create('Ext.tab.Panel',{
id : 'extabs',
activeTab : 0,
width : 350,
plain : true,
style : 'background:none',
items : [region,country],
listeners : {
beforerender : function(){
Ext.getCmp('regiontab').add(toolbar);
toolbar.add(btn);
},
tabchange : function(tp,newTab,currentTab){
if(newTab.getId()=='countrytab'){
toolbar.removeAll();
Ext.getCmp('countrytab').add(toolbar);
toolbar.add(btn);
}
if(newTab.getId()=='regiontab'){
toolbar.removeAll();
Ext.getCmp('regiontab').add(toolbar);
toolbar.add(btn);
}
}
}
});
exWindow = Ext.create('Ext.Window',{
id : 'examplewin',
title : 'tabs sample',
layout : 'fit',
width : 350,
height : 300,
draggable : false,
resizable : false,
plain : true,
frame : false,
shadow : false,
items : [exTabs]
}).show();
Вы можете проверить рабочий пример вышеприведенного кода, перейдя по следующей ссылке:
http://jsfiddle.net/kVbra/23/
1.После открытия вышеуказанной ссылки вы можете найти результат в правом нижнем углу.
2.В соответствии с вашим вопросом создана одна панель инструментов, и она используется в двух вкладках с одной и той же кнопкой.
3.Если вы нажмете накнопка, затем он получит текущий идентификатор вкладки и отобразит другой результат в зависимости от того, какая вкладка активирована.