ext tabpanel动态添加标签页问题

voidsky 2013-01-08 03:39:33
我做了一个页面主要功能是根据combox选取的对象刷新下面页面的内容。我实现的方式是在一个panel里面放入一个fieldset和一个tabpanel,代码如下
var viewport = new Ext.Panel({
frame:true,
collapsible : true,//允许展开和收缩
layout:'fit',
title:'审批',
items:[
{
xtype : 'fieldset',
title : '审批选项',
labelWidth: 80,
autoHeight: true,
columnWidth : 1,
border : true,
collapsible: true,
anchor:'100%',
layout : 'column',
items : [
{
columnWidth : .4,
layout : 'form',
border : false,
items : [
{
xtype:"combo",
fieldLabel:"审批类型",
store:fieldTypecreate,
displayField:'name',
valueField:'name',
mode:'local',
autoload:true,
triggerAction:'all',
emptyText:'请选择审批类型...',
anthor:'95%'}
]
},
{
columnWidth : .4,
layout : 'form',
border : false,
items : [
{
xtype:"combo",
fieldLabel:"办事程序",
store:fieldProgramcreate,
displayField:'name',
valueField:'id',
mode:'local',
autoload:true,
triggerAction:'all',
emptyText:'请选择...',
anthor:'95%',
listeners:{
select: function (a, b, c) {
var valueGet = b.data.id;
if(valueGet=='A'){
onClickMenuItem({id:'A',href:'page/audit/audit_info.jsp?id=2'});
}
if(valueGet=='B'){
onClickMenuItem({id:'B',href:'page/programme/programme_info.jsp?pids=2&parentid=1'});
//contentPanel.doLayout();
//contentPanel.ownerCt.doLayout();
//var bd = document.getElementById('centerPanel');
//bd.innerHTML = "";
//contentPanel.load({
// url: 'page/audit/audit_info.jsp?id=2',
// discardUrl: false,
// nocache: false,
// timeout: 30,
// scripts: true
//});
}
}
}}]
},
]}
//border: false,
//layout:"absolute"
,contentPanel]
});
var contentPanel=new Ext.TabPanel({
id:"centerPanel",
//headerStyle: 'display:none',
iconCls: 'tabs',
closable:true ,
autoScroll:true,
autodestroy: true,
deferredRender:false,
activeTab:0
});
function onClickMenuItem(node)
{
var n = contentPanel.getComponent($(node).attr('id'));
//alert(node);
if (!n) {
contentPanel.doLayout();
n = contentPanel.add({
id:$(node).attr('id'),
title:$(node).attr('id'),
autoScroll:true,
closable:true,
autoLoad:{url:$(node).attr('href'),scripts:true} //通过autoLoad属性载入目标页,如果要用到脚本,必须加上scripts属性
});
}
Ext.Msg.alert($(node).attr('href'));
contentPanel.setActiveTab(n);
}
现在出现的情况是可以动态的新建标签页,但是关闭标签的时候标签页面的页面还在,打开一个新的标签页的时候,tabpanl的当前标签页是之前的,而新打开的会被放到下面显示。
有哪位大牛能帮忙看看这个是啥问题不
...全文
713 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
大大蚊子 2013-01-28
  • 打赏
  • 举报
回复
捕获Panel的beforeshow事件,在事件中让你的tabPanel跳转到你的默认页
vikenpeng 2013-01-23
  • 打赏
  • 举报
回复
你关闭标签页时,必须让contentPanel.remove(contentPanel.getActiveTab())移除那个页面
ddgx 2013-01-09
  • 打赏
  • 举报
回复
如果你的子页面也是extjs的话 用iframe比较恶心,因为每个子页面都需要引用框架, 而且使用弹出框时遮罩也只遮罩住了子页面部分,难看
voidsky 2013-01-09
  • 打赏
  • 举报
回复
各位结贴收分了
voidsky 2013-01-09
  • 打赏
  • 举报
回复
问题解决了,改用iframe就没有这样的问题
voidsky 2013-01-09
  • 打赏
  • 举报
回复
引用 5 楼 wzs_xyz 的回复:
看不太懂你的问题描述 什么叫 但是关闭标签的时候标签页面的页面还在?意思是是关掉了,还是没关掉?
我的意思是每次autoload的页面都不是在标签页里面显示,都是在tabpanel下面重新建一个div。关闭标签页的时候autoload的页面依然还在
voidsky 2013-01-09
  • 打赏
  • 举报
回复
引用 10 楼 wangwei703 的回复:
如果你的子页面也是extjs的话 用iframe比较恶心,因为每个子页面都需要引用框架, 而且使用弹出框时遮罩也只遮罩住了子页面部分,难看
是的,每个子页面都要引用框架。主要是用autoload会出现我上面说的这种情况,搞了很长时间了,没找到解决方法。只能改用iframe了
ddgx 2013-01-08
  • 打赏
  • 举报
回复
看看是不是你的子页面出的问题,把子页面地址修改成其他的试试看有没有问题
未知数 2013-01-08
  • 打赏
  • 举报
回复
看不太懂你的问题描述 什么叫 但是关闭标签的时候标签页面的页面还在?意思是是关掉了,还是没关掉?
voidsky 2013-01-08
  • 打赏
  • 举报
回复
现在查出问题了,是我的tabpanel每次autoLoad一次就会在页面上新建一个div。这个该怎么解决?
voidsky 2013-01-08
  • 打赏
  • 举报
回复
引用 2 楼 lzpggg 的回复:
JavaScript code?123$(node).attr('href')$(node).attr('id')... 头大...
这个没问题啊
lzpggg 2013-01-08
  • 打赏
  • 举报
回复

$(node).attr('href')
$(node).attr('id')
...
头大...
voidsky 2013-01-08
  • 打赏
  • 举报
回复
很急,查了很多地方依然没有解决方法!大牛们帮帮忙啊

52,792

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧