ExtJs - FormPanel не рендерится должным образом - PullRequest
0 голосов
/ 02 сентября 2010

У меня есть конструктор (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 не отображается правильно?Где у меня ошибка?Thx.

1 Ответ

1 голос
/ 03 сентября 2010

Проблема заключается в том, что вы присваиваете initialConfig форме, так как это свойство только для чтения в соответствии с ExtJS API , а не допустимым параметром конфигурации.

Таким образом, вместо использования initialConfig для установки URL, вам просто нужно установить свойство url, так как каждая опция конфигурации Basic Form также принимается формой:

url: '123132.php',

Или, если вы хотите позволить пользователю вашего класса использовать другой URL-адрес, отличный от того, который вы могли бы использовать по умолчанию:

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

И, кстати, ваше текстовое поле не имеет ни id, ни name, и это важно, если вы отправляете эту форму, поскольку они будут определять имя параметра, который поступит на сервер со значением текстовое поле.

Здесь у вас есть фиксированный пример для игры: http://jsfiddle.net/HPBvy/. Вы можете использовать firebug или любой другой инструмент для веб-разработчиков, чтобы увидеть вызов POST.

...