我在ExtJS中获取ComboBox以显示下拉项目时遇到问题。我最初使用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);
}
});
答案 0 :(得分:6)
您没有正确调用EventForm的超类的构造函数。将构造函数的最后一行更改为:
EventForm.superclass.constructor.call(this, config);
答案 1 :(得分:1)
您的data
数组必须包含对象列表,fields
提供的密钥必须是数据在这些对象中引用的密钥。 data
数组的正确语法可能是:
data: [
{'size':'50'},
{'size':'100'},
{'size':'150'},
{'size':'200'}
]
(可能,因为我现在没有机会核实)