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 が表示されないことに注意してください。1 つのインスタンスのみをオーバーライドする場合は、プラグインを使用してください (非常に似た方法で)。

必要に応じて、Ext.LoadingMask を見て、適切なローディング マスクを aside 要素に設定することもできます。

于 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 に答える