ExtJs:在组合框中搜索过滤器

时间:2012-05-11 11:51:52

标签: extjs4

我有一个包含一组值的组合框,

Ext.define('loincList', {
            extend: 'Ext.data.Model',
            fields: [{ name: 'loincNumber', mapping: 'loincNumber' },
                     { name: 'component', mapping: 'component' }            
            ]
        });    

ds = Ext.create('Ext.data.Store', {
            model: 'loincList',
            proxy: {
                type: 'ajax',
                url : url+'/lochweb/loch/LOINCData/getLOINCData',
                reader: {
                    type: 'json',
                    root: 'LOINCData'
                }
            }
        });

组合框:

{
        xtype: 'combo',
        fieldLabel: 'Search Loinc Code',
        name: "loincId",       
        displayField: 'loincNumber',                    
        valueField: 'id',
        width: 400,                 
        store: ds,
        queryMode: 'local',
        allowBlank:false,
        listConfig: {
            getInnerTpl: function() {
                return '<div data-qtip="{loincNumber}.{component}">{loincNumber} {component} {status}</div>';
            }
        }

    }

当我在组合框中键入一个数字时,它会根据输入的数字进行过滤,但是当我输入文本时,它不会根据输入的文本进行过滤。如何根据输入的文本进行过滤。

2 个答案:

答案 0 :(得分:0)

过滤正在服务器端进行,如果您要打开像Firebug这样的东西,您会看到特殊的参数(通常名为过滤器),其中包含您在控件中键入的文本,因此您需要检查服务器端发生的情况。您需要处理过滤器文本并在服务器端根据需要制作过滤器。

答案 1 :(得分:0)

当您向组合框输入数据时,它将根据displayField进行过滤。因此,我认为当您“键入文本时,它不会根据输入的文本进行过滤”,因为组合中的任何项目都没有displayField,其前缀与您键入的文字类似。