2

我以与此示例非常相似的方式使用 Ext.form.ComboBox:http: //extjs.com/deploy/dev/examples/form/forum-search.html

让我烦恼的是,当 ajax 调用正在进行时,它显示加载文本,我看不到以前的任何结果。

例如我输入'test' -> 它显示结果 -> 我添加'e'(搜索字符串是'teste') -> 结果消失并显示加载文本,所以一秒钟我看不到任何结果并考虑它是否不是我要找的...

我怎样才能将其更改为在“加载”时不说任何内容...

4

3 回答 3

1

解决方案是覆盖 Ext.form.ComboBox 的 'onBeforeLoad' 方法:

  Ext.override(Ext.form.ComboBox, 
    { onBeforeLoad: 
        function() {this.selectedIndex = -1;}
    });    

请注意,这会覆盖类方法,因此所有 ComboBox 实例都不会显示 LoadingText。如果您只想覆盖一个实例 - 请使用插件(以非常相似的方式)。

如果您愿意,您还可以查看 Ext.LoadingMask 以将适当的加载掩码设置到旁边的元素。

于 2009-04-25T12:15:09.757 回答
0

如果您不向用户显示加载消息,用户将如何知道发生了什么?用户会注意到它已经加载了结果,因此可能会等待查看结果,但如果没有显示任何内容,那么用户将不知道它是否带来了新数据。

于 2009-04-21T08:39:58.367 回答
0

您可以监控组合框的展开事件并将选择器加载设置为 false。

    // in the controller
    init: function() {
      this.control({
        "form combobox[id=fieldId]": {
          expand: function(combobox) {
            combobox.getPicker().setLoading(false);
          }
        }
      });
    }
于 2011-12-20T09:27:13.363 回答