pré-sélection de la valeur de liste déroulante (Combo box) dans extjs?
J'ai une liste déroulante qui affiche la quantité d'items. Basé sur la quantité de sélection, je suis l'affichage des prix de la valeur de l'élément. Par défaut je suis en train de la valeur des prix à la première valeur de l'article. Cependant, lorsque je charge la page, je veux que ma zone de liste déroulante pour afficher le premier élément qté j'.e 100.
Problème: il doit charger Qté : 100 plutôt de chargement vide
Donc j'ai un magasin définie comme
Store = new Ext.data.JsonStore({
storeId: 'Store',
root: 'storevalue',
autoLoad: false,
baseParams: { itemid: '${itemID!""}',
adjustPrice: '${adjustPrice}',
overrideShowPrice: '${overrideShowPrice}' },
url: 'ListQtyPrice.epm',
fields: [ 'qty', 'rawprice', 'displayPrice' ]
});
De zone de liste déroulante pour afficher Qté
<#if Select>
new DBEComboBox({
name: 'orderqty',
displayField: 'qty',
valueField: 'qty',
id: 'order-qty',
store: Store,
forceSelection: true,
mode: 'remote',
triggerAction: 'all',
allowBlank: true,
listWidth: 202,
triggerClass: 'orderqty-trigger',
width: 200
,defaultValue: 100
,listeners: {
//for price adjustments
}
});
</#if>
Store.load({
callback: function() {
alert("reached");
Ext.getCmp('order-qty').setValue(Store.getAt(0).get('qty'));
var oqc = Ext.getCmp('order-qty');
var value = Ext.getCmp('order-qty').getValue();
alert(" hey :" +value);
}
});
En mesure de voir hey: 100 en alerte états
OriginalL'auteur Mad-D | 2012-01-16
Vous devez vous connecter pour publier un commentaire.
J'ai rencontré ce problème une fois en couple. La seule façon que j'ai effectivement eu cette résolue à appeler
setValue
sur la zone de liste déroulante après le magasin est chargé, vous pouvez simplement ajouter un listener sur le magasin, mais qui semblait toujours un peu bordélique pour moi. J'ai l'habitude d'avoir un stand-alone écouteur d'événement comme ceci:EDIT: 18 Jan 2012
OK comme mentionné ici est un exemple de zone de liste déroulante avec une valeur par défaut. Ceci est fait en utilisant ExtJS 4.02, devrait fonctionner correctement avec 4.07 cependant, ce n'est pas sûr 4.1.
Assurez-vous de mettre votre extjs chemin d'accès dans les liens (voir crochets en haut de html), sinon, il suffit de mettre les deux combo-exemple et de données.json dans le même répertoire et qu'elles doivent fonctionner correctement:
de données.json:
combo-example.html:
Cela fonctionne toujours très bien pour moi... Est-ce pour ExtJS4? Votre magasin et de la zone de liste déroulante sont encore configuré de la même que ci-dessus? Avez-vous mis l'exemple ci-dessus en dehors de toutes les autres fonctions, mais à l'intérieur de la Poste.onReady? Si vous voulez être de la saleté simple (mais pas dynamique du tout), vous pouvez toujours juste ajouter un
value
la configuration de la zone de liste déroulante par exemple:value: '100'
ouvalue: 100
j'ai essayé ces choses 1. 'magasin.getAt('0').get('qté'))' en alerte et obtenu valeur comme prévu je.e 100, mais il ne l'a pas valeur par défaut. 2. quand j'ai essayé de la valeur:'100' et de la valeur:100 s'affiche pas par défaut défini comme 100.
peut-être quelque chose à voir avec la gâchette
pas d'erreurs dans firebug,
setValue
fonction est en passant par défaut de la valeur, mais ce n'est pas de l'affichage 🙁 @Geronimo: je n'ai essayez de faire hideTrigger: false, Tout autre indice ? passé 3 jours à comprendre pourquoiOriginalL'auteur Geronimo