Que fait ExtJS ComboBox triggerAction:" all " vraiment?

J'ai essayé de créer une simple ComboBox:

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

Mais écrit de cette façon, il agit étrangement:

  • Lorsque vous ouvrez la liste déroulante pour la première fois, il offre trois choix.
  • vous choisissez un.
  • Mais lorsque vous essayez ensuite de modifier votre sélection, la liste déroulante n'offre qu'un seul choix - celui que vous avez précédemment sélectionné.

, j'ai comparé mon code échantillons sur Ext page d'accueil et a découvert que l'ajout de triggerAction: "all" résout mon problème:

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

La documentation ExtJS pour triggerAction Ne me dit pas beaucoup:

L'action à exécuter lorsque le déclencheur est actionné. Utilisez ' all ' pour exécuter la requête spécifiée par allQuery option de configuration (par défaut, "query")

Je n'ai pas spécifié l'option allQuery. En fait, je ne veux pas du tout effectuer une requête sur le serveur.

Alors qu'est-ce que ça fait vraiment?

Et le met à "all" vraiment ce que je devrais faire quand je veux juste un combobox statique simple?

22
demandé sur Rene Saarsoo 2009-06-12 16:19:14

1 réponses

Après avoir choisi un élément, la liste est filtrée pour correspondre à la valeur de texte actuelle. Dans votre cas, c'est toujours exactement la valeur choisie, mais c'est plus évident avec des valeurs multi-caractères (voir l'exemple de noms d'état dans Ext). Si vous supprimez la valeur sélectionnée, la liste déroulante reprend toutes les valeurs. triggerAction:'all' signifie Ne pas filtrer, toujours afficher toutes les valeurs.

22
répondu Brian Moeskau 2010-08-26 20:57:42