我有一个组合框:
var cmbMarket = new Ext.form.ComboBox
({
id: 'cmbMarket',
fieldLabel: 'Market',
allowBlank: false,
store: config.marketStore,
queryMode: 'local',
displayField: 'marketName',
forceSelection: true,
valueField: 'id'
});
当用户开始在组合框中输入内容时,它会正确过滤其内容,以帮助用户找到他们要搜索的内容。
问题是,当用户将组合框文本留空时,搜索不会重置!
换句话说,假设这个清单:
can
cat
coockies
...
salt
say
如果用户开始输入“c”然后将组合留空,则其内容只是以“c”开头的单词,所以:
can
cat
coockies
一开始我虽然是因为“本地”queryMode,但让组合失去了数据。无论如何,如果用户在列表之后写了“s”
salt
say
正确显示,因此数据仍然存在!
问题出在哪里?
答案 0 :(得分:1)
你使用什么ExtJS版本?
我在Ext5.1和Ext4.2中为你解决了问题,它的工作正确。 看https://fiddle.sencha.com/#fiddle/j6s
Ext.define('App.model.Business', {
requires: [ 'Ext.data.reader.Xml' ],
extend: 'Ext.data.Model',
fields: [{
name: 'Id',
type: 'string'
}, {
name: 'MarketName',
type: 'string'
}]
});
Ext.application({
name : 'Fiddle',
launch : function() {
var store = Ext.create('Ext.data.Store', {
model: 'App.model.Business',
data : [
{MarketName: 'coo', Id: '1'},
{MarketName: 'caa', Id: '2'},
{MarketName: 'saul', Id: '3'},
{MarketName: 'sdsq', Id: '4'}
]
});
Ext.create('Ext.panel.Panel', {
title : 'XML Model Example',
layout : 'hbox',
items : [{
xtype: 'combo',
fieldLabel: 'Market',
allowBlank: false,
store: store,
queryMode: 'local',
displayField: 'MarketName',
forceSelection: true,
valueField: 'Id'
}],
renderTo: Ext.getBody()
});
}
});