组合框:搜索不会重置空值

时间:2015-03-05 09:13:00

标签: extjs extjs4 extjs5

我有一个组合框:

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

正确显示,因此数据仍然存在!

问题出在哪里?

1 个答案:

答案 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()
    });
    }
});