Rooock 2010-01-08 16:28
浏览 176
已采纳

panel使用column, 怎么样才能让panel里的子panel等高?

先上图:
[img]http://dl.iteye.com/upload/attachment/190435/f140f471-d7e9-38de-89b2-411e0f2422b8.bmp[/img]

说明:
外面一个大panel,采用column布局,
里面嵌套3个小panel.

因为内容不一样. 所以不等高.
我想[color=red]让这三个panel一样高, 怎么做呢..[/color]

高度不能写死. 不可以出现滚动条的说~

附上代码..困扰了我几天了. Ext.Panel默认高度是最小的. 难道不能跟着父容器一样大么 :cry:
[code="js"]
Ext.onReady(function() {
var panel = new Ext.Panel({
layout:'column'
,defaults:{columnWidth:.33}
,items:[
{xtype:'panel', title:'panel 1', html:'panel 1
panel 1
panel 1
panel 1
'}
,{xtype:'panel', title:'panel 2', html:'panel 2',layout:'fit'}
,{xtype:'panel', title:'panel 3', html:'panel 3
panel 3
panel 3
panel 3
panel 3
panel 3
'}
]
,renderTo:document.body
});
});
[/code]
[b]问题补充:[/b]
先上图:
[img]http://dl.iteye.com/upload/attachment/190435/f140f471-d7e9-38de-89b2-411e0f2422b8.bmp[/img]

说明:
外面一个大panel,采用column布局,
里面嵌套3个小panel.

因为内容不一样. 所以不等高.
我想[color=red]让这三个panel一样高, 怎么做呢..[/color]

高度不能写死. 不可以出现滚动条的说~

附上代码..困扰了我几天了. Ext.Panel默认高度是最小的. 难道不能跟着父容器一样大么 :cry:
[code="js"]
Ext.onReady(function() {
var panel = new Ext.Panel({
layout:'column'
,defaults:{columnWidth:.33}
,items:[
{xtype:'panel', title:'panel 1', html:'panel 1
panel 1
panel 1
panel 1
'}
,{xtype:'panel', title:'panel 2', html:'panel 2',layout:'fit'}
,{xtype:'panel', title:'panel 3', html:'panel 3
panel 3
panel 3
panel 3
panel 3
panel 3
'}
]
,renderTo:document.body
});
});
[/code]
[b]问题补充:[/b]
To 蔡华江:

谢谢! 

这个问题解决了上面那个问题. 

可我发现一个更严重的事情: 

我工程中的panel丢失了body属性, 丢失了el属性, .... 

所以不能panel.getHeight()了.

同时, 因为这个原因? 给panel加上属性bodyStyle:'height:100%;'也没起到作用. 
bodyStyle:'height: 500;' 这样一个固定的值倒是可以. 


我想请教,为什么一个组件会丢失属性呢. 

代码是基于函数构造的: 

if(flag){
panel.add(newPanelA());

}else{
panel.add(newPanelB());
}
这样的形式....

纠结... 以为这个答案解决了问题, 却发现带出一个更大的问题.

[b]问题补充:[/b]

谢谢 蔡华江!

你的答案在FF下测试通过, 在IE下没能成功.

我采用了这种方式:

[code="js"]
谢谢.你的答案在FF下可以.在IE下没有成功.我采用了这种方法:
Ext.onReady(function() {

var panel1 = new Ext.Panel({flex: 1,html: 'flex : 1<br>Panel 1<br>1<br>Panel 1<br>'});

var panel2 = new Ext.Panel({width: 100,html: 'width : 100'});

var panel3 = new Ext.Panel({flex: 2,html: 'flex : 2<br>Panel 3<br>Panel 3<br><br>Panel 3<br>Panel 3<br>'});

var test = new Ext.Panel({
    layout: {type: 'hbox',pack: 'start',align: 'stretchmax'},
    items: [panel1, panel2, panel3]
    ,renderTo:document.body
});
if(Ext.isIE){
    test.setHeight(0);
}

});
[/code]

对于IE. 需要[color=red]test.setHeight(0); [/color] 这让我很无奈. 并且还不知道为什么.

  • 写回答

1条回答 默认 最新

  • CaiHuajiang 2010-01-08 16:57
    关注

    [code="js"]Ext.onReady(function() {
    var panel = new Ext.Panel({
    layout:'column'
    ,defaults:{columnWidth:.33}
    ,items:[
    {xtype:'panel',bodyStyle:'height:100%;', title:'panel 1', html:'panel 1
    panel 1
    panel 1
    panel 1
    '}
    ,{xtype:'panel',bodyStyle:'height:100%;', title:'panel 2', html:'panel 2',layout:'fit'}
    ,{xtype:'panel',bodyStyle:'height:100%;', title:'panel 3', html:'panel 3
    panel 3
    panel 3
    panel 3
    panel 3
    panel 3
    '}
    ]
    ,renderTo:document.body
    });
    });
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog