论坛首页 AJAX版 EXT

关闭Tab页后,该页面的对象是否会被销毁?

浏览 2944 次
精华帖 (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页后,再点击左边导航条,会出现错误.
   
时间: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的方法我试了一下,的确是可以解决问题。
   
请登录后投票
论坛首页 AJAX版 EXT

跳转论坛:
JavaEye推荐
    快速回复 引用上一条消息 (Alt+S)