Jmob07 2010-09-01 10:01
浏览 210
已采纳

extjs tabpanel autoload新增tab时新tab页内部布局异常

现有左边一个树,右边是一个tabpanel,点击树叶节点时新增一个tab页,用的是autoload方式,
树事件代码:
[code="java"]
treePanel.on('click', function(node, e) {
if (node.isLeaf()) {
e.stopEvent();
var tab = contentPanel.getComponent(node.id);
if (!tab) {
tab = contentPanel.add({
id : node.id,
title : node.text,
closable : true,
frame : false,
layout:'fit',
autoLoad : {
url : node.attributes.href,
scripts : true
}
tab.show().doLayout();
}
}
});

[/code]

其中某一个链接新增的页面代码如下:
[code="java"]
<%@ page language="java" contentType="text/html; charset=gbk"
pageEncoding="gbk"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">



测试页面 new Ext.Panel( { title:'aaaa', [color=red]layout:'border',[/color] region:'center', frame:true, renderTo:'5a', autoScroll : true, tbar:[{text:'顶部工具栏topToolbar'}], items:[ new Ext.Panel({ title : '嵌套面板一', region:'north', html:'ddddddddddddddddss' }),new Ext.FormPanel({ title:'查询', id:'qformPanel1qqq', region:'center', width:200, items:[{ xtype:'textfield', fieldLabel:'测试1' },{ xtype:'textfield', fieldLabel:'测试2' },{ xtype:'textfield', fieldLabel:'测试3' }] }) ] });



[/code]

发现新tab页面中显示如下:
[img]http://i3.6.cn/cvbnm/21/6d/15/90b674e141a7b398dfc20926cc25f90d.jpg[/img]

如果把新增的页面中主panele修改为 layout:'fit'则显示如下:
[img]http://i3.6.cn/cvbnm/86/4e/47/2cac099500f86237486fc38c095e2763.jpg[/img]

为何border布局就会有问题呢,有人遇到吗,该怎么解决。。

  • 写回答

5条回答

  • lizhiyezi 2010-09-01 11:30
    关注

    tab= contentPanel.add({
    id : node.id,
    title : node.text,
    closable : true,
    frame : false,
    layout : 'fit',
    listeners : {
    render : function(p) { //在render玩之后 手动执行 load 加载页面
    p.load({
    url : node.attributes.href,
    params : {
    id : p.id //传递 当前 panel id 在 jsp 使用 Ext.getCmp('<%=request.getParameter("id")%>').add(panel); 获取组件添加新面板
    },
    scripts : true,
    callback : function() {
    p.doLayout(); //加载完毕刷新面板
    }
    });
    }
    }

                                })
    

    //在jsp 里直接使用 Ext.getCmp('<%=request.getParameter("id")%>').add(panel);添加你的新panel 不需要 renderTo:'5a', 和div了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大