当前位置: 代码迷 >> Ajax >> extjs初学者,小弟我的tabpanel新增tab第一次可以正常显示,再次请求就什么都没有了呢
  详细解决方案

extjs初学者,小弟我的tabpanel新增tab第一次可以正常显示,再次请求就什么都没有了呢

热度:353   发布时间:2012-12-22 12:05:07.0
extjs菜鸟,我的tabpanel新增tab第一次可以正常显示,再次请求就什么都没有了呢?
我想通过点击一个树形节点,在我的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> 
……
------其他解决方案--------------------
引用:
JScript code
var flight_panel =new Ext.Panel( {
//id : 'flight_panel', //把这句去掉试试。
border : false,
layout : 'border',
items : [grid]//flight_panel里面是内容的,就是这个内容,在第一次点击一个树形节点时是会出现的,第二次点击就不出现了
});
……

试了不行……
------其他解决方案--------------------
那啥自己再顶一下
------其他解决方案--------------------
该回复于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())
  相关解决方案