当前位置: 代码迷 >> Ajax >> 关于EXTjs4.1中tab关闭之后再打开的有关问题
  详细解决方案

关于EXTjs4.1中tab关闭之后再打开的有关问题

热度:401   发布时间:2013-11-02 19:41:10.0
关于EXTjs4.1中tab关闭之后再打开的问题
页面布局是,左边:是treePanel菜单栏;中间:tabPanel,在tabPanel中嵌入chart图形。
现在遇到了个问题:当我关闭一个tab之后,再次点击treePanel中的节点让tab在中间再次显示出来的时候,tab不能显示并且连页面都没有了。
错误提示:在extall.js中,
Uncaught TypeError: Cannot read property 'addCls' of null 

tabPanel 代码片段如下:

if(!landInfoNodeId){
  var landInfoTab= MainPanel.add({
                    title:record.raw.text,
                    id:record.raw.id,   
                    closable:true,
                    items:columnChart,
                    layout: 'fit',
                                   });
                    MainPanel.setActiveTab(landInfoTab);


请各位大虾帮忙看看,我个人觉得是参数或者是remove Tab的时候没有控制。
但是我不知道我定位的是否正确,还有就是如果我定位正确的话,不知道怎么写这样控制的代码。。。
非常感谢。

------解决方案--------------------
关闭tab的时候要释放,否则资源还在存
------解决方案--------------------
我也遇到了,怎么办啊啊啊
------解决方案--------------------
closable:true, 这个属性导致的 关闭的时候调用hide()方法
closable:true你看下API 实际上他只是隐藏了 还是存在的
我一般对于window这样的 设置它的autoShow:true。需要显示就创建个Ext.widget("").不用就直接close 
可能这种方式也不是很好 我也是初学者 希望高人指点
------解决方案--------------------
extjs tab 新增面板 如何显示在第一个位置???
------解决方案--------------------
Ext.getCmp('tab').getActiveTab().items.destroy();
------解决方案--------------------
remove Tab的时候,要确保完全的移除了,不然,还有残留的话,当然就显示不全了。
还有一种方法就是隐藏下,再点击时,就再显示下就好了。
两种方法各有优缺点,第一种不会占用内存资源,但影响效率,第二种会占用内存资源,但效率高点。
------解决方案--------------------
定位是对的,tabpanel对象没有销毁,关闭的时候需要对象销毁掉,如果你是add的话。
建议打开页面的时候show,而不是add
------解决方案--------------------
楼主,后来你的问题解决了没?
解决了的话,交流下