带有远程存储的 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。
我有一个这样的远程商店:
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。