在使用TabPanel时,有时候可能会遇到这样的情况,tab打开再关闭后会出错。这是因为tab默认关闭的方式是'close',这样会销毁(destroy)tab的控件,如果你将panel或其他控件的定义放在onReady之外,定义的方法如:new Panel({..})就不会被执行,会出现空引用错误,而在onReady之内就会将实例化的方法再执行。
要控制tab的开关,先要了解这几个方法:
void unhideTabStripItem(index/id/item) 显示tab(只显示header)
void hideTabStripItem(index/id/item) 隐藏tab(只隐藏header)
void show() 显示tab(只显示body)
void hide() 隐藏tab(只隐藏body)
例子:
//显示, 放在按钮事件处理 或 树节点击事件中
var tabs=new TabPanel({..});
var newPanel=new Panel({id:'myPanel',title:'hello',closable:true,html:'hello'});
var myPanel=tabs.getItem('myPanel');
if(myPanel==null){
tabs.add(myPanel).show()
}
else{
tabs.unhideTabStripItem(myPanel.show());
}
//关闭
tabs.on('beforeremove', function(tabs, tab) {
tabs.hideTabStripItem(tab.hide());
return false;
});
转载于:https://blog.51cto.com/liuya2012/1103714