我想通过点击一个树形节点,在我的tabpanel中生成一个新的tab,然后显示它,这一步可以实现可是关闭后再次点击同一个节点之后,新生成的tab就只能显示一个标题,里面的内容就没有了,不知道为什么
这是我的树在文件main.js中
var mainTab = new Ext.TabPanel({
region : 'center',
items : {
title : '系统介绍',
html : '<div style="position:absolute;top:60;left:120;"></div>'
}
});
mainTab.activate(0);
function createTree(treeId)
{
……
tree.on("click", function(node, e) {
if(!mainTab.items.containsKey(node.id))
{
var tab = mainTab.add({
id : node.id,
title : node.text,
closable : true,
layout : 'fit',
items : [flight_panel]//是测试代码,让所有的树形节点生成一样的tab内容
}).show();
}
else
{
mainTab.items.item(node.id).show();
}
});
Ext.onReady(function() {……});
这是包含变量flight_panel的fligh.js文件
……
var flight_panel =new Ext.Panel( {
id : 'flight_panel',
border : false,
layout : 'border',
items : [grid]//flight_panel里面是内容的,就是这个内容,在第一次点击一个树形节点时是会出现的,第二次点击就不出现了
});
------最佳解决方案--------------------
var flight_panel =new Ext.Panel( {
//id : 'flight_panel', //把这句去掉试试。
border : false,
layout : 'border',
items : [grid]//flight_panel里面是内容的,就是这个内容,在第一次点击一个树形节点时是会出现的,第二次点击就不出现了
});
------其他解决方案--------------------
这2个js文件同时引入到了,main.jsp中即
……
<script type="text/javascript" src="<%=path%>/js-css/flight.js"></script>
<script type="text/javascript" src="<%=path%>/js-css/main.js"></script>
……
------其他解决方案--------------------
试了不行……
------其他解决方案--------------------
那啥自己再顶一下
------其他解决方案--------------------
该回复于2010-08-23 15:06:43被版主删除
------其他解决方案--------------------
大虾们给点指点吧,google都翻了n遍了还是没找到答案啊
------其他解决方案--------------------
自己解决了,首先在mainTab定义中增加一段变为
var mainTab = new Ext.TabPanel({
region : 'center',
autoDestroy:false,
items : {
/** 定义一个默认的tabpanel */
title : '系统介绍',
html : '<div style="position:absolute;top:60;left:120;"><img src="/FMS/images/bg.jpg"/></div>'
},
listeners:{remove:function(tp,c){c.hide();}}/**作这个处理,为的是关闭一个tab后,再次打开时它还能显示出来*/
});
其次在树形节点增加onclick事件监听处代码改为
tree.on("click", function(node, e) {
if(node.isLeaf())