ExtJS ComboBox 录入智能提示

ExtJS ComboBox非常复杂,有很多的属性;其中有的属性是针对某一种特定的方案而设计的,不是所有情况下都有效。我想下拉选择能支持录入,并且录入时能智能提示,弄了半天可以了,但是只能是mode='local'的这种方式,即数据只能加载到本地,在本地检索;如果改成mode='remote'却不能。数据量太大想过滤后再加载不能实现了,郁闷了半天; 又过了很长时间,数据量太大加载太慢的问题一直困扰着我,如是潜心研究了一番;终于mode='remote'也可以远程过滤后加载了,录入时智能提示了。

附上代码:

 

  new Ext.form.ComboBox({

            allowBlank: true,

            hideLabel: true,

            width: 200,

            store: new Ext.data.JsonStore({

                url: "。。。",

                autoDestroy: true,

                fields: new Ext.data.Record.create(['Key', 'Value']),

                root: "data",

                autoLoad: false

            }),

            queryParam: 'query',

            emptyText: '选择...',

            valueField: 'Key',

            displayField: 'Value',

            editable: true,

            autoLoadStore: false,

            mode: 'remote',

            typeAhead: true,

            loadingText: '正在加载...',

            minChars: 1,

            forceSelection: true

       });

queryParams属性指示 获取数据的方法中的过滤数据的参数
editable参数必须设置为true

mode:'remote' 表示远程模式加载数据,要想远程过滤数据必须设置为remote

typeAhead:true 列出下拉框时包含录入的字符

minChars:1 录入一个字符就远程过滤加载数据

forceSelection:true 必须是列表中的数据项才可以选择

 

 

 

你可能感兴趣的:(combobox)