我们在写组件的时候总会需要增加空白的位置,但是组件默认都是一个跟一个的排列,要是form布局又会总是换行,用table布局吧,那跟的是个紧。经过试验找到一个好的方法:只要增加一个固定高度或者固定宽度的panel就行了。代码如下:
var ss=new Ext.form.FormPanel({
width:'1400',
height:'300',
id:'form',
frame:true,
layout:'table',
layoutConfig: {
columns: 16 },
items:[{xtype:'label',
style : 'font-size:12px',//设置字体大小
id:'d5',
hidden:h5,//这个是在外部定义的
text:"关键字:"
},{
xtype:'textfield',
id:'b5',
name:"KEYWORD",
width:140,
hidden:h5,
value:''
},
{
xtype:'combo',
id:'b6',
width:100,
hidden:h6,
name:"BANK_NAME",//开户行
store:store6
},{
xtype:'panel',//设置空白
border:0,
width:28//空白的大小
},{
id:'b7',
xtype:"checkbox",
hidden:h7,
name:"checked"
},{
xtype:'label',
style : 'font-size:12px',
hidden:h7,
text:"包含历史"
},{
buttons:[{text:"搜索",handler:function(){look5()}}
,{text:"高级",handler:function(){Ext.getCmp("form").hide();}}]}]
})
1 楼
bottle123
2011-03-28
正在找这个呢,谢楼主分享
2 楼
wxq136
2011-04-01
很不错,谢谢了
3 楼
clue
2011-04-02
何必用Panel?这么重量级的组件用来占位,太奢侈了
BoxComponent就够用了,它是Div,默认display:block,不定宽度会占满整行:
xtype : "box"
BoxComponent就够用了,它是Div,默认display:block,不定宽度会占满整行:
xtype : "box"
4 楼
sam.ds.chen
2011-04-02
这是不够优雅的workaround
为什么不用layout:'absolute'?想让组件放在哪就放在哪。
为什么不用layout:'absolute'?想让组件放在哪就放在哪。
5 楼
clue
2011-04-02
sam.ds.chen 写道
这是不够优雅的workaround
为什么不用layout:'absolute'?想让组件放在哪就放在哪。
为什么不用layout:'absolute'?想让组件放在哪就放在哪。
如果其中一个组件大小有变动,你要怎么办?一个个地调整x, y吗?
配置越少越好,越少代表着适应性与灵活度越高,不管你怎么变都能保持正常显示。
当然,如果你和Ext的BorderLayout那样由程序自动计算x,y坐标那也没问题。
6 楼
挫骨扬灰
2011-04-07
clue 写道
何必用Panel?这么重量级的组件用来占位,太奢侈了
BoxComponent就够用了,它是Div,默认display:block,不定宽度会占满整行:
xtype : "box"
BoxComponent就够用了,它是Div,默认display:block,不定宽度会占满整行:
xtype : "box"
本文的重点不是在于用什么来承载,重点是在需要的时候如何加上空白占位符,谢谢你的批评。