|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-02-29
我想达到这样一个效果
点击右边的导航条,右边弹出对应的功能tab页 关闭后,功能tab页隐藏(默认好像会把这个tab页销毁) 再点击,右边再出现该功能tab页
openTab: function(title,icon,tabid){
var tab = this.getComponent(tabid);
if(tab){
this.setActiveTab(tab);
}else{
var newTab = Ext.getCmp(tabid);
newTab.setTitle(title);
newTab.setIconClass(icon);
this.add(newTab);
this.setActiveTab(newTab);
newTab.loadData();
}
}
现在出现的问题是第一次点击会正常出现,但一但关闭tab页后,再点击左边导航条,会出现错误. 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
| 返回顶楼 | |
|
时间:2008-02-29
应该是更改TAB页的关闭事件,让它隐藏而不是销毁吧。
一旦关闭被销毁,你的 Ext.getCmp(tabid) 肯定会出错。 |
|
| 返回顶楼 |
请登录后投票
|
|
时间:2008-02-29
应该是这样吧,但是不知道是哪个事件,还有具体要怎么做..
|
|
| 返回顶楼 |
请登录后投票
|
|
时间:2008-03-03
关闭以后会被销毁的: 我刚刚搞定这个问题。使用如下代码:
var useractionstatTab = new Ext.Panel({
title: '用户操作行为统计',
id:0102,
deferredRender:true,
scripts: true,
closable:true,
autoDestroy:false,
layout:'anchor',
loadMask:{msg: 'Loading Data...'},
items:[useractionstat_Form,useractionstat_Grid]
});
useractionstatTab.on('beforedestroy', function(tab) {
tablist.remove(tab,false);
tab.hide();
return false;
});
tablist.add(useractionstatTab);
useractionstatTab.show();
|
|
| 返回顶楼 |
请登录后投票
|
|
时间:2008-03-03
没那么麻烦
只需要设置TabPanel的autoDestroy: false 设置子Panel的closeAction:'hide' 再显示的话就调用TabPanel的add方法 再调用setActiveTab方法设置哪个面板为显示的就可以了 |
|
| 返回顶楼 |
请登录后投票
|
|
时间:2008-03-03
我用了,可是捕获不到该事件....烦
|
|
| 返回顶楼 |
请登录后投票
|
|
时间:2008-03-03
这个事件是不是TabPanel捕获的啊??
|
|
| 返回顶楼 |
请登录后投票
|
|
时间:2008-03-03
不是,是你自己的新增加的tab
|
|
| 返回顶楼 |
请登录后投票
|
|
时间:2008-03-04
marvin.s
请问你那种方法有没有成功用过,我试过不行 我在TabPanel上加上了 this.on('beforeremove', function(tabs, tab) { tabs.hideTabStripItem(tab.hide()); return false; }); 可以成功隐藏 并可以通过 this.unhideTabStripItem(tab.show()); 再次显示 谢谢大家! |
|
| 返回顶楼 |
请登录后投票
|
|
时间:2008-03-04
marvin.s的方法我试了一下,的确是可以解决问题。
|
|
| 返回顶楼 |
请登录后投票
|



