gpt4 book ai didi

extjs - 实时搜索组合框无法使用 ExtJS 4.2.1

转载 作者:行者123 更新时间:2023-12-04 23:10:37 25 4
gpt4 key购买 nike

我不确定我的代码有什么问题。但是,在组合框中键入 4 个字符后,将显示所有值,而不是根据我键入的字符进行过滤。因此,我的实时搜索被打破了。请参阅附图以获得更好的说明。

Illustration Image

我在面板内创建组合框作为项目之一

    {
xtype: 'combobox',
fieldLabel: 'Guest Name',
padding: '10px 10px 20px 10px',
allowBlank: false,
id: 'guest_id_payment',
name: 'guest_id',
// Template for the dropdown menu.
// Note the use of "x-boundlist-item" class,
// this is required to make the items selectable.
tpl: Ext.create('Ext.XTemplate',
'<tpl for=".">',
'<div class="x-boundlist-item">{identity_number} - {name}</div>',
'</tpl>'
),
// template for the content inside text field
displayTpl: Ext.create('Ext.XTemplate',
'<tpl for=".">',
'{identity_number} - {name}',
'</tpl>'
),
valueField: 'identity_number',
store: 'SGuest',
height: 20,
queryMode: 'remote'
}

这是商店:

Ext.define('ghb.store.SGuest', {
extend: 'Ext.data.Store',
model: 'ghb.model.MGuest',
autoLoad: true,
autoSync: true,

proxy: {
pageParam: false,
startParam: false,
limitParam: false,

type: 'ajax',
api: {
create: '/ghb_manager/add_guest',
read: '/ghb_manager/data_guest',
update: '/ghb_manager/edit_guest',
destroy: '/ghb_manager/delete_guest'
},
reader: {
type: 'json',
root: 'data'
},
writer: {
type: 'json',
encode: true,
writeAllFields: true,
root: 'data'
},
root: 'data'
}
});

我还要添加更改事件监听器

       '#guest_id_payment':{
change: this.changeGuestCombo
},

这是change事件监听器的作用,加载另一个store(不是ComboBox的store)

changeGuestCombo: function(self, newValue, oldValue, eOpts){
var store = Ext.getStore('SReservation');
store.load({
params: {
data: self.getValue(),
}
});
},

注意我正在使用 4.2.1

最佳答案

您目前设置过滤的方式应该在服务器端处理。如果您将 queryMode: 'remote' 更改为 queryMode: 'local' 那么过滤器应该按照您想要的方式工作。

queryMode: 'remote' 告诉组合框使用您键入的值调用代理,服务器将只返回匹配的值。如果您有庞大的数据集要搜索,这将很有帮助

关于extjs - 实时搜索组合框无法使用 ExtJS 4.2.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21630418/

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