22

単純なComboBoxを作成しようとしました。

var combo1 = new Ext.form.ComboBox({
  store: [1,2,3],
  renderTo: document.body
});

しかし、このように書かれていると、奇妙に動作します。

  • ドロップダウンを初めて開くときは、3つの選択肢があります。
  • いずれかを選択します。
  • ただし、その後選択を変更しようとすると、ドロップダウンには1つの選択肢(以前に選択したもの)しか表示されません。

私は自分のコードをExtホームページのサンプルtriggerAction: "all"と比較し、追加することで問題が解決することを発見しました。

var combo2 = new Ext.form.ComboBox({
  triggerAction: "all",
  store: [1,2,3],
  renderTo: document.body
});

のExtJSドキュメントはtriggerAction私に多くを教えてくれません:

トリガーがクリックされたときに実行するアクション。'all'を使用して、allQuery構成オプションで指定されたクエリを実行します(デフォルトは'query')

allQueryオプションを指定していません。実際、サーバーへのクエリはまったく実行したくありません。

では、これtriggerActionは実際に何をするのでしょうか?

そして"all"、単純な静的コンボボックスが必要なときに、実際に何をすべきかを設定していますか?

4

1 に答える 1

23

アイテムを選択すると、リストは現在のテキスト値と一致するようにフィルタリングされます。あなたの場合、それは常に正確に選択された値ですが、複数文字の値を使用するとより明白になります(Extの状態名の例を参照)。選択した値を削除すると、ドロップダウンはすべての値に戻ります。 triggerAction:'all'フィルタリングせず、常にすべての値を表示することを意味します。

于 2009-06-12T19:49:28.503 に答える