我是extjs的初学者。
我想安排一些文本字段如下:
,,,答:______ ,,, b: ______ ,, c: ______
,,, d: ______ ,,, e: ______ ,, f: ______
Ext.onReady(function()
{
new Ext.panel.Panel(
{
renderTo: Ext.getBody(),
layout:'vbox',
width: 670,
tbar: [{text:"Add"}],
defaults:
{
layout:"column",
height:50
},
items:
[
{
defaults:
{
labelAlign:"right",
labelWidth:50
},
items:
[
{
xtype: 'textfield',
fieldLabel: 'a'
},
{
xtype: 'textfield',
fieldLabel: 'b'
},
{
xtype: 'textfield',
fieldLabel: 'c'
}
]
},
{
defaults:
{
labelAlign:"right",
labelWidth:50
},
items:
[
{
xtype: 'textfield',
fieldLabel: 'd'
},
{
xtype: 'textfield',
fieldLabel: 'e'
},
{
xtype: 'textfield',
fieldLabel: 'f'
}
]
}
]
});
});
的结果是,页面不能显示任何TextFields。
提前感谢您的帮助!
你可以这样做:
new Ext.panel.Panel({
renderTo: Ext.getBody(),
width: 670,
tbar: [{
text: "Add"
}],
defaults: {
layout: ,
height: 50
},
items: [{
defaults: {
labelAlign: "right",
labelWidth: 50
},
items: [{
xtype: 'textfield',
fieldLabel: 'a'
}, {
xtype: 'textfield',
fieldLabel: 'b'
}, {
xtype: 'textfield',
fieldLabel: 'c'
}]
}, {
defaults: {
labelAlign: "right",
labelWidth: 50
},
items: [{
xtype: 'textfield',
fieldLabel: 'd'
}, {
xtype: 'textfield',
fieldLabel: 'e'
}, {
xtype: 'textfield',
fieldLabel: 'f'
}]
}]
});
除了用默认的auto
布局替换vbox
布局外,它本质上与您的示例相同。你的例子不起作用的原因是vbox
布局需要以某种方式设置高度和宽度。
你也可以这样做:
new Ext.panel.Panel({
renderTo: Ext.getBody(),
layout: 'column',
width: 670,
tbar: [{
text: "Add"
}],
defaults: {
labelAlign: "right",
labelWidth: 50
},
items: [{
xtype: 'textfield',
fieldLabel: 'a'
}, {
xtype: 'textfield',
fieldLabel: 'b'
}, {
xtype: 'textfield',
fieldLabel: 'c'
}, {
xtype: 'textfield',
fieldLabel: 'd'
}, {
xtype: 'textfield',
fieldLabel: 'e'
}, {
xtype: 'textfield',
fieldLabel: 'f'
}]
});
这是一个column
布局,没有嵌套的项目。column
布局的一个好处是,它会把尽可能多的项目移到左边,如果一个项目不合适,它会移到下一行。因为宽度是一个静态的670,它只能适合3个文本字段每行。列布局不需要高度设置。