EXT JS表单面板有几个部分

时间:2011-05-26 06:56:31

标签: forms extjs panel

如何创建包含较小部件的表单面板。较小的部件应该可以在表格面板中重复使用。

1 个答案:

答案 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;
}

如果要重复使用它,可以使用配置数组或字段名修改函数参数(名称必须更改,否则只会提交一个字段)。但我认为应该向你展示这个诀窍。

当然这可以加载到主体中!