ExtJS ComboBox не отображает элементы - PullRequest
2 голосов
/ 20 мая 2011

У меня проблемы с получением ComboBox в ExtJS для отображения выпадающих элементов. Первоначально я использовал XmlStore для динамической загрузки данных, но чтобы убедиться, что это не проблема, я взял существующий ComboBox, который использует простой ArrayStore (и в настоящее время работает в другом месте в моем приложении), чтобы посмотреть, будет ли он работать, все еще без удачи.

При использовании инструментов разработчика Chrome, когда я нажимаю на элемент ComboBox, я получаю ext-all-debug.js:41166 - Uncaught TypeError: Cannot call method 'getStyle' of undefined, и в раскрывающемся списке ничего не отображается.

Вот мой код:

EventForm = Ext.extend(Ext.form.FormPanel, {
    constructor: function(config) {
        config = Ext.apply({
            items: [
                {
                    layout: 'column',
                    xtype: 'container',
                    items: [
                        {
                            layout: 'form',
                            xtype: 'container',
                            columnWidth: 0.5,
                            items: [
                                {
                                    fieldLabel: 'My Combo Box'
                                    name: 'mycombobox',
                                    xtype: 'combo',
                                    store: new Ext.data.ArrayStore({
                                        fields: ['size'],
                                        data: [
                                            ['50'],
                                            ['100'],
                                            ['150'],
                                            ['200']
                                        ]
                                    }),
                                    displayField: 'size',
                                    valueField: 'size',
                                    forceSelection: true,
                                    editable: false,
                                    triggerAction: 'all',
                                    mode: 'local',
                                    listWidth: 60,
                                    width: 60
                                }
                            ]
                        }, {
                            // another column here similar to above
                        }
                    ]
                }
            ]
        }, config);

        EventForm.superclass.constructor(config);
    }
});

Ответы [ 2 ]

6 голосов
/ 21 мая 2011

Вы неправильно вызываете конструктор суперкласса EventForm.Измените последнюю строку вашей функции конструктора следующим образом:

EventForm.superclass.constructor.call(this, config);
1 голос
/ 20 мая 2011

Ваш массив data должен содержать список объектов, а ключи, предоставленные вами fields, должны быть ключами, на которые ваши данные ссылаются в этих объектах. Правильный синтаксис для вашего массива data может быть:

data: [
    {'size':'50'},
    {'size':'100'},
    {'size':'150'},
    {'size':'200'}
]

(может быть, потому что у меня сейчас нет шансов проверить)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...