我有一个包含3列的FormPanel。每列占FormPanel宽度的33%。看起来像这样:
searchForm = new Ext.FormPanel({
frame: true,
title: 'Search Criteria',
labelAlign: 'left',
labelStyle: 'font-weight:bold;',
labelWidth: 85,
width: 900,
items: [{
layout: 'column',
items: [{ // column #1
columnWidth: .33,
layout: 'form',
items: [{
xtype: 'textfield',
fieldLabel: 'Banner ID',
name: 'bannerID',
anchor: '95%',
},
new Ext.form.ComboBox({
fieldLabel: 'Advertiser',
typeAhead: true,
triggerAction: 'all',
mode: 'local',
emptyText: 'Advertiser',
store: advertiserList,
valueField: 'id',
displayField: 'name'
})] // close items for first column
}, {
columnWidth: .33,
layout: 'form',
items: [{
xtype: 'textfield',
fieldLabel: 'Banner Name',
name: 'bannerName',
anchor: '95%',
},
new Ext.form.ComboBox({
fieldLabel: 'Art Type',
typeAhead: true,
triggerAction: 'all',
mode: 'local',
emptyText: 'Art Type',
store: artTypesList,
valueField: 'id',
displayField: 'name'
})] // close items for second column
}, {
columnWidth: .33,
layout: 'form',
items: [{
xtype: 'hidden'
},
new Ext.form.ComboBox({
fieldLabel: 'Art Size',
typeAhead: true,
triggerAction: 'all',
mode: 'local',
emptyText: 'Art Size',
store: artSizeList,
valueField: 'id',
displayField: 'name'
})] // close items for third column
}]
}]
}); // close searchForm FormPanel
它显示的内容如下所示:
唯一的问题是我希望“艺术尺寸”字段/标签与“广告商”和“艺术类型”字段在同一行上对齐。有没有办法添加一个“空白”项目,这样它会强制输入到正确的行?还有其他方法可以解决这个问题吗?
谢谢!
修改: 这有效:
{
xtype: 'component',
fieldLabel: ' ',
labelSeparator: ' ',
}
答案 0 :(得分:8)
默认情况下隐藏空标签(该字段被推到左侧)。 而不是把'& nbsp;'标签......
fieldLabel: ' ',
labelSeparator: ' ',
你可以正确地做到:
hideEmptyLabel : false
即使没有指定标签,女巫也会对齐您提交的组件。
答案 1 :(得分:7)
编辑:这有效:
{
xtype: 'component',
fieldLabel: ' ',
labelSeparator: ' ',
}
答案 2 :(得分:3)
您的解决方案可行,但不是ExtJS(/ HTML表)方式。
您正在使用column
布局,因此您可以在横幅名称字段上使用colspan: 2
,从而产生相同的输出。
您还可以使用rowspan让您的字段覆盖两行:)
答案 3 :(得分:1)
上述所有内容似乎都对我有用。我必须明确设置empy单元格的高度。
xtype: 'label',
text: ' ',
flex:1,
height:22
至少可以说是令人失望。
但是这仅适用于 vBox 布局。如果我使用锚布局,则无效:(