ExtJS 动态加载的tabpanel组件关闭后再打开,tabpanel能正常显示而其包含的formpanel子组件没有显示出来

各位老师,你们好。我是一位ExtJS初学者。最近做了一个小程序,遇到一个难题。这个程序主要是一个viewport组件,border布局,分成四个部分,分别是north、w... 各位老师,你们好。我是一位ExtJS初学者。最近做了一个小程序,遇到一个难题。这个程序主要是一个viewport组件,border布局,分成四个部分,分别是north、west、south和center。其中左边west部分包含treepanel组件,是一导航栏,当点击这个treepanel组件中的某个子结点时,在右边center部分动态加载一个tab页,且这个tab页又包含一个formpanel子组件。现在的问题是:当第一次点击左边west部分的导航栏中的某个子结点时,右边center部分能够正确显示一个tabl页和其包含的formpanel组件。但当关闭tab页后再打开这个tab页时,就只能显示tab页,而其包含的formpanel却不见踪影,并且报错:'dom'为空或不是对象。程序代码如下:

function addTabPage(node,id){ //node:点击的子结点的引用;id:动态加载的tab页的id
var tb = Ext.getCmp('centerArea_TabPanel');
if (tb) {
var tp = Ext.getCmp(id);
if (!tp) {
var newTabPage = tb.add({
id:id,
title:node.text,
titleAlign:'left',
closable:true,
tabConfig:{
tooltip:'这是' + node.text + '面板。',
iconCls:node.iconCls
}
});
newTabPage.add(changePasswordWin).show(); //changePasswordWin:formpanel子组件
tb.setActiveTab(newTabPage);
}else{
Ext.Msg.show({
title:'提示',
msg:'"' + node.text + '"' + '页面已经存在,请不要重复创建!',
modal:true,
icon:Ext.Msg.INFO,
buttons:Ext.Msg.OK
});
tp.show();
};
};
};
这个问题困扰了我很长时间,至今未解决。期间,我上网查了下,很多解决办法,如设置:autoDestroy:false、closeAction:'hide'等等,我都试过,都行不通,问题依然存在。希望哪位老师在百忙中抽出一点时间帮助我解决这个难题,我不胜感激。
展开
 我来答
JGH1023360745
2015-10-14 · TA获得超过527个赞
知道小有建树答主
回答量:228
采纳率:94%
帮助的人:91.2万
展开全部
这个问题也遇到过 我记得当时是这样的解决的
动态的一些子项是有一个id问题的 你需要提前在函数外面声明一个对象 把你创建或者隐藏的对象放在函数外面 对这个对象进行添加或者隐藏 试试看
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式