ExtJS - 用于组合框的typeAhead与queryMode“local” - 不能查询子字符串

时间:2015-07-07 17:10:20

标签: javascript extjs extjs4 extjs4.1

我正在使用Ext 4.1.1

我有一个为queryMode启用了typeAhead的组合框:“local”。只要您只查询displayField的前缀,它就可以正常工作。但是,当您在该显示字段中查询子字符串时,没有任何反应。

{
            xtype:"combo",
            fieldLabel:"Country",
            name:"COUNTRY",
            itemId:"countryFilterFld",
            labelPad:5,
            typeAhead:true
            queryMode:"local",             
            valueField:"ID",                
            displayField:"LABEL",
                store:store
}

例如,其中一个LABEL是“美国”。如果我开始输入“United”,“美国”会被过滤掉。但如果我输入“国家”,根本没有任何事情发生。

我也试过听组合框“更改”事件,然后获取值并过滤组合框存储,但更改事件甚至没有被触发。

listeners: {           
  change: function(cbo_) {
    var store = cbo_.getStore();                
    store.clearFilter();                
      store.filter({
        property: 'LABEL',
        anyMatch: true,
        value   : cbo_.getValue()
    })
  }
},

我在更改事件处理程序中设置了一个断点,但即使在我不再关注该字段之后,该事件也永远不会被触发。

1 个答案:

答案 0 :(得分:2)

在您的组合中使用anyMatch

  

配置为true以允许匹配任何类型的字符   在valueField的值中的位置。

例如:

{
        xtype: "combo",
        fieldLabel: "Country",
        name: "COUNTRY",
        itemId: "countryFilterFld",
        labelPad: 5,
        typeAhead: true
        queryMode: "local",             
        valueField: "ID",                
        displayField: "LABEL",
        store: store,
        anyMatch: true
}