0

我有一个 Extjs 应用程序,它使用了很多组合框(带有附加的服务调用)。这些组合中的每一个都附加了一个休息存储区,为它提供了一种从服务器获取数据的方法。

我的问题是,即使所有商店的 autoLoad 为 false,这些组合框的每个实例都有多个 rest 调用。

我想,要么:

  • 找到一种方法将存储限制为仅 1 次调用(通过配置) ——不需要超过 1 次调用,数据不会经常更改

  • 找到一种方法,在第一次加载后将 store 的代理从 rest 代理更改为 memory 代理——这将允许组合执行尽可能多的 load(),不会再调用服务器。

编辑: 为了说明我的组合是如何创建的:

Ext.define('SelectBox', {
        extend : 'Ext.form.field.ComboBox',
        alias : 'widget.selectBox',
        editable : false,
        allowBlank : true,
        displayField : 'label',
        valueField : 'value',
        forceSelection : true,
        minChars : 1,
        queryMode: "local" //added this after the answer was given
    });

我打电话给他们:

{
  xtype:"selectBox",
  store: "someStore"
}
4

1 回答 1

1

您基本上必须将组合设置queryMode为本地,以便在客户端进行过滤操作。无需弄乱代理。而且你的连击也会更有反应!

请参阅上一个答案第二部分中的示例。

为此,您还必须确保将存储的remoteFilter(可能还有remoteSort)选项设置为 false。

于 2013-05-30T07:35:38.857 回答