首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

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

2012-12-22 
extjs菜鸟,我的tabpanel新增tab第一次可以正常显示,再次请求就什么都没有了呢?我想通过点击一个树形节点,

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())


{
  if(!mainTab.items.containsKey(node.id))
  {      var tab = mainTab.add({
id : node.id,
title : node.text,
closable : true,layout : 'fit',        items : [Ext.getCmp("flight_panel_"+node.id)]/**这里要注意()中的是extjs组件的id值,tabpanel增加的tab,他们的id值不可以一样,否则的话,只有激活的tab能显示该组件,其他tab就不能显示这个组件了**/
});
tab.doLayout() ;
mainTab.activate(tab);
 }
 else
 {           
   mainTab.items.item(node.id).show();
 }
}
});
注意这里的("flight_panel_"+node.id对应的是我的系统中包含在其他js文件中的ext组件的id值
[其他解释]
楼主能给发个源代码么???
[其他解释]
问题解决  谢谢楼主
[其他解释]
能给个代码学习一下吗?正在起步中...

热点排行