我有一个extjs组合框,其queryMode
设置为remote
。
我还想要其中的typeAhead
功能。但是在这种情况下,打字工作会起作用。
即使在组合框中输入了一些文本,商店也会重新加载到原始数据。
这是我的代码:
var queryStore = Ext.create('Ext.data.Store', {
//autoLoad: true,
model: 'UserQuery',
proxy: {
type: 'ajax',
url: 'queryBuilder_getQueryList',
extraParams: {
tableId: this.title
},
reader: {
type: 'json'
}
},
listeners: {
load: function () {
var combo = Ext.getCmp('cmbQueryList');
var lst = this.last();
if (lst)combo.setValue(lst.data);
}
}
});
var queryCombo = new Ext.form.ComboBox({
width: 200,
id: 'cmbQueryList',
store: queryStore,
valueField: 'queryID',
displayField: 'queryName',
typeAhead: true,
forceSelection: true,
emptyText: 'Select Query...',
queryMode: 'remote',
triggerAction: 'query',
selectOnFocus: true,
allowBlank: false,
editable: true
});
请建议如何让typeAhead和querymode远程协同工作。
答案 0 :(得分:0)
这段代码为我塞了。我猜你的商店属性自动加载是真的,所以当你要选择组合框它去服务器并重新加载数据。请删除商店自动加载属性true。然后它的工作。
new Ext.form.ComboBox({
fieldLabel:'Apps',
displayField: 'name',
valueField: 'id',
typeAhead: true,
listWidth : 345,
store: myStore(),
forceSelection: true,
triggerAction: 'all',
mode:'remote',
maxLength: 50,
editable: false,
anchor : '90%',
selectOnFocus:true
}),
答案 1 :(得分:0)
以下代码对我有用。我们必须将mode
和queryMode
都指定为local
。
var queryCombo = new Ext.form.ComboBox({
width: 200,
id: 'cmbQueryList',
store: queryStore,
valueField: 'queryID',
displayField: 'queryName',
emptyText: 'Select Query...',
queryMode: 'local',
mode: 'local'
});