2010-01-07 4 views
1

J'ai un ComboBox avec un magasin json distant.Comment sélectionner un enregistrement spécifique du magasin dans un ComboBox (ExtJS)

Il permet à l'utilisateur de taper 3+ caractères, puis interroge, affiche la liste et permet à l'utilisateur de sélectionner une option. Lorsque l'utilisateur sélectionne une option, il utilise Ext.data.Record associé à l'option sélectionnée pour remplir d'autres champs ailleurs dans le formulaire. Cela fonctionne correctement.

Maintenant, je veux être en mesure de pré-remplir les champs précités, en utilisant les fonctions que j'ai déjà écrites dans le cadre de la liste déroulante. Ce que je suis venu avec, est d'ajouter un "enregistrement artificiel" à la boutique ComboBox, puis forcer sa sélection - qui déclencherait toutes les bonnes fonctions et peupler les autres champs, etc.

Ce que j'ai c'est fonction à l'intérieur de la zone de liste déroulante (je l'ai créé une coutume par une ComboBox extension):

loadRecord : function(record){ 
    var data = { 
     "results":1, 
     "rows":[ 
      record 
     ] 
    } 

    this.store.loadData(data); // I realize I could just use store.add() instead. 

    alert(this.store.getCount()); // returns 1, so the record is in 

    // Here is where I'd need to make a call to select this record. 
} 

J'ai essayé this.select() et this.selectByValue() mais en vain. Sachant que l'enregistrement est dans le magasin, quelle est la bonne façon de le sélectionner à partir du code?

Merci d'avance.

Répondre

2

Avez-vous essayé combo.fireEvent('click', combo, record, index)?

1

Que diriez-vous ceci:

record = this.store.getAt(1); 
+0

Salut à tous, Merci pour votre réponse. getAt() me rendra le record, mais j'ai déjà le record. J'ai besoin de tromper tout le ComboBox en croyant que l'utilisateur a sélectionné le dit enregistrement. J'ai trouvé une solution qui fonctionne dans mon cas spécifique, mais ce n'est pas trop élégant, et j'aimerais quand même savoir s'il y a une approche plus générale. Merci encore. – SuitedSloth

Questions connexes