我使用Ext.form.combobox执行自动完成搜索,我的数据存储在数组存储:ext.data.arraystore中,实际上数组存储中的数据是通过ajax请求加载的,这是我的arraystore代码:
var ds = new Ext.data.ArrayStore({
fields: ['description','lat','lng'],
data: xmlarray
});
其中xmlarray是一个使用ajax请求从php服务器加载的数据数组
这是我的组合框代码:
var timePanel = {
xtype: 'panel',
border: false,
width: 600,
bodyPadding: 10,
layout: 'anchor',
items: [{
xtype:'combo' ,
displayField:'displayValue',
valueField: 'id',
store: ds,
mode: 'local',
typeAhead: true,
triggerAction: 'all',
hideTrigger:false,
lazyRender: true,
emptyText: 'select a city',
forceSelection: false,
typeAhead: true,
selectOnFocus: true,
enableKeyEvents:true,
listConfig: {
loadingText: 'Searching...',
emptyText: 'No matching posts found.',
// Custom rendering template for each item
getInnerTpl: function() {
return '<div class="search-item">' +
'<h3><span>{[Ext.Date.format(values.lastPost, "M j, Y")]}<br />by {author}</span>{title}</h3>' +
'{excerpt}' +
'</div>';
}
},
pageSize: 10,
//listeners: {select: this.GeocoderRequest};
}
]
};
我的主要问题是组合框向我显示了一组空的选择行,而每个选择行应该显示我的数据中的名称但是它是空的而不是..我的arrastore或组合框配置中有任何问题吗? / p>
答案 0 :(得分:1)
fields: ['description','lat','lng'],
...
displayField:'displayValue',
valueField: 'id',
商店中没有名为displayValue的字段,因此组合框找不到它要查找的值。 valueField也是如此。