gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 11:24:37 26 4
gpt4 key购买 nike

我在 ExtJs 2.3 中有以下问题/问题:

我想在组合框中进行搜索。
我给你举个例子:

Ext.comboData.names = [['Peter', 'Paul', 'Amanda']];

var store = new Ext.data.SimpleStore({
fields: ['name'],
data: Ext.comboData.names
});


var combo = new Ext.form.ComboBox({
name: '...',
id: '...',
store: store,
displayField: 'name',
typeAhead: true,
mode: 'local',
forceSelection: false,
triggerAction: 'all',
emptyText: '-',
selectOnFocus: true,
applyTo: '...',
hiddenName: '...',
valueField: 'name'
enableKeyEvents: true,
lastQuery: '',
listeners: {
'keyup': function() {
this.store.filter('name', this.getRawValue(), true, false);
}
}
});

当我输入“a”时,“下拉列表”中应该只有“Paul”和“Amanda”。因此,换句话说,我正在寻找一种解决方案,不仅可以通过条目的第一个字母来过滤数据,还可以使用正则表达式 (?) 之类的东西来过滤数据(例如在 SQL ... LIKE '%a%' 中) ...我还需要为我的组合框设置“onKeyDown”事件类型,以便过滤我添加的每个字母的结果。
我怎样才能做到这一点?有任何想法吗?

提前很多坦克:)

希尔迪

PS:不幸的是,我必须使用我当前版本的 ExtJs (2.3),所以如果在以后的版本中有解决我的问题的方法,我将不得不寻找其他方式......

最佳答案

anyMatch: true是你所需要的全部。 (就像在 SQL 中 ... LIKE '%a%')正如你所问的,只需添加这个就可以完成。

示例:

Ext.create('Ext.form.ComboBox', {
name: 'name',
anyMatch: true,
allowBlank: true,
editable : true,
typeAhead: true,
transform: 'stateSelect',
forceSelection: true,
queryMode: 'local',
displayField: 'name',
valueField: 'id',
selectOnFocus: true,
triggerAction: 'all',
store: {
fields: ['id', 'name'],
proxy: {
type: 'ajax',
url: '/user'
},
autoLoad: true,
autoSync: true
}
})

关于ExtJs:在组合框中搜索/过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5511223/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com