ExtJS ComboBox很是複雜,有不少的屬性;其中有的屬性是針對某一種特定的方案而設計的,不是全部狀況下都有效。我想下拉選擇能支持錄入,而且錄入時能智能提示,弄了半天能夠了,可是隻能是mode='local'的這種方式,即數據只能加載到本地,在本地檢索;若是改爲mode='remote'卻不能。數據量太大想過濾後再加載不能實現了,鬱悶了半天; 又過了很長時間,數據量太大加載太慢的問題一直困擾着我,如是潛心研究了一番;終於mode='remote'也能夠遠程過濾後加載了,錄入時智能提示了。ide
附上代碼:url
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 spa
mode:'remote' 表示遠程模式加載數據,要想遠程過濾數據必須設置爲remote設計
typeAhead:true 列出下拉框時包含錄入的字符code
minChars:1 錄入一個字符就遠程過濾加載數據orm
forceSelection:true 必須是列表中的數據項才能夠選擇blog