2009-04-21 67 views
2

我用Ext.form.ComboBox非常類似的方式,在這個例子中: http://extjs.com/deploy/dev/examples/form/forum-search.html如何避免在Ext.form.ComboBox中顯示加載文本?

什麼惹惱我是,當Ajax調用過程中它顯示加載文本,我無法從之前看到任何結果。

例如我輸入'test' - >它顯示結果 - >我添加'e'(搜索字符串是'teste') - >結果消失並顯示加載文本,所以一秒鐘我看不到任何結果,想一想,如果它不是什麼我尋找...

我怎樣才能改變這根本就不是在「裝」說什麼......

回答

1

的解決方案是重寫「onBeforeLoad」 Ext.form.ComboBox的方法:

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

請予以警告,這將覆蓋類的方法,因此,所有的組合框實例不會有LoadingText表現。如果你想只覆蓋一個實例 - 請使用插件(以非常類似的方式)。

如果您願意,您也可以查看Ext.LoadingMask以設置合適的加載掩碼到預留元素。

+0

我使用插件。 Thx回答... – Juraj 2009-04-27 13:06:58

0

如果你不顯示加載消息給用戶用戶將如何知道發生了什麼?用戶會注意到它已經加載的結果可能會等待查看結果,但如果沒有顯示,用戶將不知道它是否帶來新數據。

+0

這是真的,但第二次,當我什麼都看不到對我來說更糟糕。 Google沒有顯示任何內容,只是結果,這對我來說很自然。事情正在發生的信息只有第一次有一些附加價值。每隔一段時間,用戶就已經期待該搜索存在於背景中...... – Juraj 2009-04-21 08:42:54

0

您可能會監視組合框的展開事件並將選取器加載設置爲false。

// in the controller 
    init: function() { 
     this.control({ 
     "form combobox[id=fieldId]": { 
      expand: function(combobox) { 
      combobox.getPicker().setLoading(false); 
      } 
     } 
     }); 
    } 
相關問題