关于extjs tabpanel替换一个tab的问题

  怎么替换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]

注意红色的部分