ExtJs 4.x 学习小记:Ext.TabPanel动态隐藏及显示

来源:互联网 发布:windows重启网络命令 编辑:程序博客网 时间:2024/05/20 05:25

Ext.TabPanel页签关闭时,Ext.TabPanel本身已经从DOM中销毁了,但是其上的子项,比如嵌入的Grid,Panel等依然存在,如果创建时为这些子项设置了id属性,那么当你再次创建Ext.TabPanel时,就会报id重复的错误,如果不设置id,就会有内存泄露,重复创建。解决的方法网上也有但总觉得不舒服,而且每次重新创建,也会降低效率。

解决:每次关闭时,不是真正的Destory,而是隐藏,下次再显示时,直接找到它,show出来就好了。

需要设置两个属性Ext.TabPanel的autoDestroy及tab的closeAction

Ext.TabPanel

var pnCenter=new Ext.TabPanel({  id:'pnCenter',layout: 'fit',     region:'center',      autoScroll:true,     autoDestroy:false,//不让它销毁    heigth:'auto',      collapsible:false,    activTab:0,    items:[{    title:'<font color="red">任务列表<font>',    items:[Ext.getCmp('taskGrid')]    }]}); 
添加及显示Tab页

 function addTabToPanel(parentPanel,title,key,url){ var tab = Ext.getCmp(key); if (!Ext.isEmpty(tab))  //如果找到tab,将其添加到TabPanel { parentPanel.add(tab); parentPanel.setActiveTab(tab); } else { tab = parentPanel.add({ id:key, closeAction:'hide', //隐藏不关闭 title:title, closable:true, autoScroll:true,//滚动条 autoLoad:{ url:url, scripts:true } }) parentPanel.setActiveTab(tab); }  }


0 0
原创粉丝点击