我使用Ext.form.ComboBox的方式与此示例非常相似: http://extjs.com/deploy/dev/examples/form/forum-search.html
令我恼火的是,当ajax调用正在进行时,它显示加载文本,我看不到之前的任何结果。
例如我输入'test' - >它显示结果 - >我添加'e'(搜索字符串是'teste') - >结果消失和加载文本显示,所以一秒钟我看不到任何结果,并考虑它是不是我正在寻找的...
我怎样才能改变这一点,只是在'加载'时不要说什么...
答案 0 :(得分:1)
解决方案是覆盖Ext.form.ComboBox的'onBeforeLoad'方法:
Ext.override(Ext.form.ComboBox,
{ onBeforeLoad:
function() {this.selectedIndex = -1;}
});
请注意,这会覆盖类方法,因此所有ComboBox实例都不会显示LoadingText。如果您只想覆盖一个实例 - 请使用插件(以非常类似的方式)。
如果愿意,您还可以查看Ext.LoadingMask以设置适当的加载掩码。
答案 1 :(得分:0)
如果您没有向用户显示加载消息,用户将如何知道发生了什么?用户会注意到它已经加载的结果可能会等待查看结果,但是如果没有显示,那么用户就不会知道它是否带来了新数据。
答案 2 :(得分:0)
您可以监视组合框的expand事件并将picker加载设置为false。
// in the controller
init: function() {
this.control({
"form combobox[id=fieldId]": {
expand: function(combobox) {
combobox.getPicker().setLoading(false);
}
}
});
}