ExtJs - FormPanel 未正确呈现

发布于 2024-09-17 06:19:39 字数 1162 浏览 3 评论 0原文

我有构造函数 (window + formPanel),

AddOrgWindowUI = Ext.extend(Ext.Window, {
title: 'Create something',
width: 400,
height: 200,
layout: 'fit',
initComponent: function() {
    this.items = [
        {
            xtype: 'form',
            id: 'add-form',
            padding: 5,
            initialConfig: Ext.apply(this.initialConfig, {
                url: '123132.php'
            }),
            items: [
                {
                    xtype: 'textfield',
                    fieldLabel: 'abbr',
                    anchor: '95%',
                    value: this.abbr,
                    emptyText: 'abbr'
                }

            ],
            buttons: [
                {
                    text: 'Add',
                    handler: function() {
                        Ext.getCmp('add-form').getForm().submit();
                    }
                }
            ]
        }
    ];
    AddOrgWindowUI.superclass.initComponent.call(this);
}});

但是当我尝试创建它时 - var AddOrgWindowForm = new AddOrgWindowUI({n_full:'aaa'});AddOrgWindowForm.show(); 我得到一个空窗口 (没有表单面板)为什么 formPanel 无法正确渲染?我哪里有错误? 谢谢。

I have constuctor (window + formPanel)

AddOrgWindowUI = Ext.extend(Ext.Window, {
title: 'Create something',
width: 400,
height: 200,
layout: 'fit',
initComponent: function() {
    this.items = [
        {
            xtype: 'form',
            id: 'add-form',
            padding: 5,
            initialConfig: Ext.apply(this.initialConfig, {
                url: '123132.php'
            }),
            items: [
                {
                    xtype: 'textfield',
                    fieldLabel: 'abbr',
                    anchor: '95%',
                    value: this.abbr,
                    emptyText: 'abbr'
                }

            ],
            buttons: [
                {
                    text: 'Add',
                    handler: function() {
                        Ext.getCmp('add-form').getForm().submit();
                    }
                }
            ]
        }
    ];
    AddOrgWindowUI.superclass.initComponent.call(this);
}});

but when Im trying to create it - var AddOrgWindowForm = new AddOrgWindowUI({n_full:'aaa'});AddOrgWindowForm.show(); I get an empty window (without form panel) Why formPanel dont render properly? Where I have mistake?
Thx.

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

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

发布评论

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

评论(1

玩世 2024-09-24 06:19:39

问题是当您将 initialConfig 分配给表单时,因为根据 ExtJS API 且不是有效的配置选项。

因此,不必使用 initialConfig 来设置 url,您只需设置 url 属性,因为表单也接受每个基本表单配置选项:

url: '123132.php',

或者如果您想让你的班级的用户使用默认网址之外的另一个网址:

url: this.urlForm || '123132.php',

顺便说一句,你的文本框没有 id 也没有 name,如果您正在提交此表单,因为这些表单将定义参数的名称,该参数将与文本框的值一起到达服务器。

这里有固定的示例供您使用:http://jsfiddle.net/HPBvy/。您可以使用 firebug 或任何其他 Web 开发人员工具来查看 POST 调用。

The problem is when you assign the initialConfig to the form, as it is a readonly property according to ExtJS API and not a valid config-option.

So instead of using initialConfig to set the url you just have to set the url property as every Basic Form config-option is accepted by the Form too:

url: '123132.php',

Or if you want to let the user of your class to use another url than the default one you could do:

url: this.urlForm || '123132.php',

And by the way, your textbox has no id nor name, and this is important if your are submitting this form, as these will define the name of the parameter that will arrive to the server with the value of the textbox.

Here you have the fixed example for you to play with: http://jsfiddle.net/HPBvy/. You can use firebug or any other web-developer-tool to see the POST call.

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