Compensation ExtJS zone de liste déroulante champ de saisie
J'ai un Poste.forme.Zone de liste déroulante avec les propriétés suivantes:
fieldLabel: 'Regiune',
valueField: 'id',
displayField: 'reg',
id: 'cbRegR',
typeAhead: true,
store: new Ext.data.JsonStore({...}),
mode: 'local',
emptyText: '',
listeners:{...}
Le problème c'est que je dois supprimer manuellement la zone de liste déroulante' champ de saisie après la sélection d'une valeur dans la liste déroulante pour afficher tous les éléments de la liste. La question est la liste affiche uniquement les éléments qui commencent par les lettres dans le champ de saisie.
Comment puis-je effacer le champ de saisie sur l'expansion de la liste déroulante? J'ai essayé ce qui suit, mais ça ne fonctionne pas:
listeners: { 'expand': function() { cbRegR.clearValue(); } }
Semble être facile, mais ce n'est pas vrai pour moi.. des idées brillantes? Merci à l'avance.
- o-kay, comment puis-je marque ma question comme RÉSOLUE?
InformationsquelleAutor Giku Promitt | 2011-01-14
Vous devez vous connecter pour publier un commentaire.
L'ajout de la config de la propriété de votre zone de liste déroulante
pourrait faire l'affaire, sans avoir besoin de s'inscrire développez un gestionnaire d'événement ou de compensation de la zone de liste déroulante de la valeur
triggerAction
est réglé sur "tous", la valeur de laallQuery
option est utilisée pour interroger les données par défaut, c'est "" si toutes les données sont renvoyées.C'est un comportement intrinsèque de Ext JS ComboBox-es pour filtrer la liste des articles en fonction de la valeur du champ, comme vous le savez déjà.
Vous pourriez perceivably remplacer le expand() la méthode, d'y faire des ajouts pour effacer la valeur avant elle rend la liste. Par exemple:
L'expansion de l'événement est la bonne, mais vous devez être prudent sur la portée.
Ne la définition de la portée d'aide?
À l'aide de
cbRegR
ne fonctionne pas, parce que c'est une variable non définie. Soit utiliserou, une approche plus sophistiquée: