带有远程存储的 ExtJS 6 过滤器组合框下拉菜单

ExtJS 6 Filter Combobox Dropdownmenu with a remote store

我有一个这样的远程商店:

 example:{
        storeId: 'example',
        fields: ['field1','field2','field3'],
        proxy:{
            type: 'ajax',
            url: 'data.cfc',
            actionMethods: { read: 'POST' },
            reader: {
                type: 'json',            
            }
        }                       
    }

我的 Combobox 看起来像这样:

 xtype: 'combo',
 fieldLabel: 'Example',
 name: 'Example',
 bind:{
    store: '{example}'
 },
 valueField: 'field1',
 displayField: 'field2',
 forceSelection: true,

我现在的问题是,当我在文本字段中键入内容时,对于远程存储,组合框不会像 queryMode: 'local' 那样过滤下拉菜单中的值。有没有办法用 queryMode: 'remote' 实现相同的过滤器外观?

您将无法通过远程存储重现 完全相同的 行为(因为您必须先加载数据)。如果您不介意在创建时加载商店,您可以相应地配置您的商店以允许再次在本地查询:

autoLoad:true
remoteFilter: false,

autoLoad: true 确保在创建时加载商店。如果您尝试对具有远程存储的组合框使用本地查询模式,则 remoteFilter: true 是必需的。

然后你只需要把这个属性添加到你的组合框

queryMode: 'local'

过滤获取的数据。 如果您要将大量记录加载到您的商店,这可能不是一个好主意。 此外,您必须实现一个函数来按需(重新)加载商店。

有关示例,请参阅 this fiddle