Ce n'ExtJS ComboBox triggerAction: “tout” vraiment?
J'ai essayé de créer une simple zone de liste déroulante:
var combo1 = new Ext.form.ComboBox({
store: [1,2,3],
renderTo: document.body
});
Mais écrit de cette manière il agit étrangement:
- Lorsque vous première fois pop ouvrir la liste déroulante, il propose trois choix.
- Vous choisissez une.
- Mais quand vous après cela, essayez de modifier votre sélection, la liste déroulante n'a qu'un choix, celui que vous avez précédemment sélectionné.
J'ai comparé mon code pour le les é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
});
ExtJS documentation pour triggerAction
ne m'en dit pas beaucoup:
L'action à exécuter lorsque le déclencheur est actionné.
L'utilisation de 'tous' pour exécuter la requête spécifiée par le allQuery
option de configuration (par défaut, "query")
Je n'ai pas précisé l'allQuery option. En fait, je ne veux pas d'effectuer une requête vers le serveur.
Alors qu'est-ce triggerAction
vraiment?
Et à "all"
vraiment ce que je dois faire quand je veux juste un simple statique de la zone de liste déroulante?
Vous devez vous connecter pour publier un commentaire.
Après avoir choisi un élément, la liste est filtrée pour correspondre à l'actuelle valeur de texte. Dans votre cas, c'est toujours exactement la valeur choisie, mais il est plus évident avec les caractères multi-valeurs (voir l'état des noms exemple Ext). Si vous supprimez la valeur sélectionnée, la liste déroulante va revenir pour avoir toutes les valeurs.
triggerAction:'all'
signifie de ne pas filtrer, de toujours afficher toutes les valeurs.TriggerField
et est donc utilisé de manière plus générale à l'extérieur de combos et de ne même pas avoir à se rapportent à un filtrage dans d'autres implémentations. Mais oui, un combo-alias spécifique qui est plus descriptif pourrait être sympa.