具有远程存储但在本地查询的组合框

Posted

技术标签:

【中文标题】具有远程存储但在本地查询的组合框【英文标题】:Combobox with remote store but query locally 【发布时间】:2021-05-31 07:22:10 【问题描述】:

我有一个绑定到休息代理商店的组合。我想远程加载数据,但是一旦加载,如果用户在组合中搜索,我不想查询服务器,而只是在本地查询商店。

如果我设置 queryMode: 'local',它永远不会从远程服务器加载数据。这是一种误导,因为属性名称暗示它与查询操作本身有关,而不是与商店有关。

有什么解决方法吗?

谢谢。

【问题讨论】:

您可以添加一些示例或小提琴来重现此行为吗? 听起来您需要在商店中设置autoLoad 或手动加载商店但保留queryMode: 'local' 【参考方案1】:

如果您已经远程加载了一个商店来填充您的组合,您可以使用chained store。然后您可以将您的组合设置为 queryMode: 'local' 并像这样定义它的商店('storename' 必须是有效的storeId):


    xtype: 'combobox',
    editable: true,
    queryMode: 'local',
    forceSelection: true,
    store: 
        type: 'chained',
        source: 'storename'
    

基本上,它会创建远程加载存储的虚拟副本,该副本可以拥有自己的过滤器和分类器,而不会影响原始(源)存储。而且这个你可以在本地过滤。

如果您在多个组合框中使用同一个商店,这将非常有用。使用这种方法,您将只加载一次数据,但您可以在不同的组合中同时使用不同的过滤器。我遇到了这个问题,而且很烦人,没有连锁店,如果用户在某处过滤到“abc”,所有其他组合都会相应地被过滤,这在大多数情况下绝对是不可取的。

【讨论】:

以上是关于具有远程存储但在本地查询的组合框的主要内容,如果未能解决你的问题,请参考以下文章

extjs 5 将值设置为具有远程值的组合框时出错

从预先存储的参数化访问查询填充组合框

EXTJS:如何在组合框上自动完成查询后从数据存储中清除“查询”参数

EasyUI Combobox组合框(模糊搜索默认值绑定)

更新另一个组合框后的组合框重新查询

Extjs 组合框显示具有从数据存储 rest/jsp 请求中获取的值的记录