ext tabpanel动态添加标签页问题
我做了一个页面主要功能是根据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)现在出现的情况是可以动态的新建标签页,但是关闭标签的时候标签页面的页面还在,打开一个新的标签页的时候,tabpanl的当前标签页是之前的,而新打开的会被放到下面显示。
{
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);
}
$(node).attr('href')
$(node).attr('id')
...