怎么替换tabpanel的tab,比如我有这样的一个布局,如下图,左边是一个tree,右边是一个tabpanel,现在问题是有什么方法可以点左边tree的节点时替换掉右边tabpanel的tab,而且只能有一个标签显示,谢谢!此布局采用的是官网forum的例子
var mainpanle = new Ext.Panel({
id : CRM.SYS.MainPanleId,
iconCls : 'new-topic',
region : 'center',
margins : '0 5 5 0',
resizeTabs : true,
// autoDestroy : false,
tabWidth : 150,
items : [grid1[color=red],grid2],
layout : "card",
activeItem : 0[/color]
});
menuTree.on('click', function(node, e) {
//假如这里有两个节点
if(node.id=='节点1'){
[color=red]mainpanle.layout.setActiveItem(0); [/color]
}
if(node.id=='节点2'){
[color=red]mainpanle.layout.setActiveItem(1); [/color]
}
});
就一个你还用tab干什么,哈哈。
看样子整体的布局应该是border,那么就分为west和center。如果center就是tab,建议改为center是个panel里边是tab
如果tab是中间panel的子组件,可以调用tab.ownerCt.remove(tab);
然后重新定义一个tab1 加上就可以了。最后别忘了doLayout()
[code="java"]var mainpanle = new Ext.Panel({
id : CRM.SYS.MainPanleId,
iconCls : 'new-topic',
region : 'center',
margins : '0 5 5 0',
resizeTabs : true,
// autoDestroy : false,
tabWidth : 150,
items : [grid1[color=red],grid2],
layout : "card",
activeItem : 0[/color]
});
menuTree.on('click', function(node, e) {
//假如这里有两个节点
if(node.id=='节点1'){
mainpanle.layout.setActiveItem(0);
}
if(node.id=='节点2'){
mainpanle.layout.setActiveItem(1);
}
}); [/code]
注意红色的部分