如何创建包含较小部件的表单面板。较小的部件应该可以在表格面板中重复使用。
答案 0 :(得分:4)
我正在使用帮手。这是一个应该向您展示技巧的例子。
/// limitForm : array with all ellemts that should be taken from the inner form. can be null or empty to take all
FormContent.loginForm = function (limitForm) {
var defaults = [
{/* this has the ID 0 */
xtype: 'Fieldset',
title: 'Username',
layout: 'form',
items: [
{
xtype: 'panel',
layout: 'form',
header: false,
hideBorders: true,
bodyBorder: false,
border: false,
height: 40,
items: [
{
xtype: 'textfield',
fieldLabel: 'Username',
regex: /^[\w\s\.]*$/,
regexText: 'No special chars allowed in this field',
anchor: '100%',
name: 'LoginName'
}
]
}
]
}
,
{/* this has the ID 1 */
xtype: 'Fieldset',
title: 'Additional data',
layout: 'form',
items: [
{
xtype: 'panel',
layout: 'column',
header: false,
border: false,
bodyBorder: false,
height: 40,
items: [
{
xtype: 'panel',
layout: 'form',
header: false,
columnWidth: 0.5,
hideBorders: true,
bodyBorder: false,
border: false,
items: [
{
xtype: 'textfield',
fieldLabel: 'Title',
anchor: '100%',
name: 'Title'
}
]
},
{
xtype: 'panel',
layout: 'form',
header: false,
columnWidth: 0.5,
style: 'margin-left: 18px',
hideBorders: false,
border: false,
bodyBorder: false,
labelWidth: 65,
items: [
{
xtype: 'textfield',
fieldLabel: 'Title',
anchor: '100%',
name: 'Title'
}
]
}
]
}
}
];
if (limitForm) {
var ds = [];
for (var i = 0, len = limitForm.length; i < len; i++) {
ds.push(defaults[limitForm[i]]);
}
defaults = ds;
}
return defaults;
}
如果要重复使用它,可以使用配置数组或字段名修改函数参数(名称必须更改,否则只会提交一个字段)。但我认为应该向你展示这个诀窍。
当然这可以加载到主体中!