EXT JS 表单面板由多个部分组成

发布于 2024-11-09 15:57:12 字数 41 浏览 2 评论 0原文

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

How do I create a form panel with smaller parts. The smaller parts should be reusable in the form panel.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

零崎曲识 2024-11-16 15:57:12

我正在为此使用助手。这是一个可以向您展示技巧的示例。

/// 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;
}

如果您想重用它,您可以使用配置数组或字段名称修改函数参数(名称必须更改,否则只会提交一个字段)。但我认为它应该向您展示其中的技巧。

当然,这必须加载到主窗体中!

I am using helper for this. Here is a example that should show you the trick.

/// 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;
}

If you want to reuse it you can modify the function params with config arrays or fieldnames (the names must changes otherwise just one field will get submitted). But I think it should show you the trick.

For sure this mus be loaded in the mainform!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文