2010-06-28 4 views
0

J'ai un peu de difficulté à définir la valeur d'une zone de liste déroulante dans le code.Modification de la valeur d'une zone de liste modifiable Ext.form.ComboBox Ext JS

J'ai la boîte de sélection suivante

new Ext.form.ComboBox({ 
      id: 'address_type', 
      name: 'address_type', 
      editable: false, 
      disableKeyFilter: true, 
      forceSelection: true, 
      fieldLabel: 'Type', 
      emptyText: 'Please Select', 
      triggerAction: 'all', 
      mode: 'local', 
      store: new Ext.data.SimpleStore({ 
       id: 0, 
       fields: ['value', 'text'], 
       data : [['Home', 'Home Address'], ['Work', 'Work Address']] 
      }), 
      valueField: 'value', 
      displayField: 'text', 
      hiddenName: 'address_type' 
      }) 

Alors sûrement si j'exécutais:

Ext.getCmp('address_type').setValue('Work') 

fixerait la valeur de la boîte de sélection pour « travail Adresse »? Cependant, cela ne semble pas fonctionner.

Tout conseil apprécié, merci.

Répondre

0

Le problème peut être que l'appel Ext.getCmp échoue parce que vous avez défini identiques id et hiddenName pour le ComboBox.

ExtJS (now Sencha) API documentation énonce ce qui suit:

hiddenName: String

Si cela est spécifié, un champ de formulaire caché avec ce nom est généré dynamiquement à magasin de valeur de données du champ. ...

Remarque: l'ID du champ masqué sera également par défaut si ce paramètre est non spécifié. L'ID ComboBox et le hiddenId doivent être différents, car aucun nœud DOM ne doit partager le même id. Ainsi, si le nom de la zone de liste déroulante et hiddenName sont identiques, vous devez indiquer pour spécifier un ID caché unique.

Donc, vous devriez essayer de donner à votre Combobox un hiddenId unique et voir si cela fonctionne alors.

+0

Ahhhh! J'aurais dû regarder un peu plus près les docs! Merci beaucoup. – roobotta

Questions connexes