Comment ajouter un item vide à ExtJS combobox?
Je veux ajouter et un élément vide (valeur d'affichage est vide, élément de hauteur est gardé comme d'habitude) pour un Poste.forme.Zone de liste déroulante. J'ai appellé 2 liens ci-dessous pour configurer mon combobox, mais toujours pas d'affichage de l'item vide:
- http://www.ashlux.com/wordpress/2009/09/04/handling-empty-options-with-ext-js-combo-box/
- http://www.sencha.com/forum/showthread.php?52340-How-to-add-a-quot-blank-quot-entry-to-a-ComboBox
Voici mon code:
this.abcCombo = new Ext.form.ComboBox({
name : 'abcCombo',
hiddenName : 'abcCombo-id',
fieldLabel : "My Combobox",
width : 250,
editable : false,
forceSelection : true,
mode : 'local',
triggerAction : 'all',
valueField : 'id',
displayField : 'fullName',
store : new Ext.data.JsonStore({
fields : ['id', 'fullName']
}),
tpl : '<tpl for="."><div class="x-combo-list-item">{fullName} </div></tpl>'
});
La zone de liste déroulante du magasin de données sera chargé après une requête Ajax (j'.e 3 éléments dans les éléments de données). Et la zone de liste déroulante a seulement 3 élément (et non 4 comme je m'y attendais).
Avez-vous une idée sur mon problème?!
Merci beaucoup!
OriginalL'auteur | 2012-02-22
Vous devez vous connecter pour publier un commentaire.
Depuis votre ajout de la zone de liste déroulante des valeurs plus tard, pourquoi ne pas initialiser le magasin avec une valeur vide:
Plus tard, quand vous ne
store.add(theRestOfThem)
, que la vierge sera toujours là.Dû revoir ce aujourd'hui (15 Avril 2017) pour ExtJS 4.2:
La façon la plus simple est d'inclure une chaîne vide dans le magasin comme ci-dessus, il peut également être effectué avec une charge d'écoute sur la boutique:
Puis ajouter un
tpl
la configuration de la zone de liste déroulante avec
après le champ d'affichage:(le champ d'affichage est
fullName
dans la Fpo cas)Désolé, l'utilisation de l'espace au lieu de ", voir modifier. J'ai eu ce même problème au début, maintenant que je m'en souviens.
Si vous incluez un item vide dans le magasin, vous devez exécuter quelque chose d'autre à faire de la validation. Normalement, la valeur par défaut du validateur voudrais juste vérifier que la valeur sélectionnée dans le magasin. Je ne vois pas cela comme une option viable.
L'ajout de $nbsp; causait trop de problèmes pour moi, donc j'ai trouvé une autre solution en utilisant le style. <style> .x-boundlist li:vide { height: 20px; } </style>
OriginalL'auteur Geronimo
Vous pouvez ajouter un "vide", enregistrement au début:
OriginalL'auteur Darin Kolev
});
sur l'initialisation du composant, vous pouvez le faire (sur commande):
sur le remplir de fonction:
pour extjs 4 cette solution sauts de la zone de liste déroulante, la solution la plus simple que j'ai trouvé a été de retirer l'ensemble de gabarits de trucs et tout simplement
tpl: new Ext.XTemplate('<tpl for=".">' + '<li style="height:22px;" class="x-boundlist-item" role="option">' + '{name}' + '</li></tpl>'),
dans le Poste.créer/config pour la zone de liste déroulanteOriginalL'auteur wens
C'est la façon dont nous pouvons ajouter un champ vide dans la boîte Combo
En java de la Carte ou de toute autre collecte de mettre la valeur de la clé, comme ce
Dans fichier js, il devrait ressembler à ceci :
Auditeur pour la liste déroulante de la boîte de
OriginalL'auteur ifti
Ext 4.2.1 (et probablement d'autres), il suffit d'ajouter à la zone de liste déroulante config:
OriginalL'auteur Black
Si la banque utilise des données en ligne puis
store.load
même ne se déclenche pas. Peut-être il est une meilleure solution, mais j'ai fini par l'insertion de stocker les enregistrements surcombobox.render
:OriginalL'auteur serg