2009-12-24 7 views
1

Voici ma fonction Extjs onReadypourquoi mon combobox extjs n'est pas rempli dynamiquement?

var store = new Ext.data.Store({ 
            proxy: new Ext.data.HttpProxy({ 
            url: '/loginjson.json' 
            }), 

            reader: new Ext.data.JsonReader(
            {root: 'row', fields:['dblist']} 
            ) 
        }); 
      store.load(); 

et ici je l'utilise dans mon panneau FormPanel comme

renderTo: document.getElementById("loginform"), 
            title: "Login Form", 
            items: [{ 
             xtype: 'combo', 
             fieldLabel: 'genre', 
             name: 'genre', 
             store: store, 
             autoLoad: true, 
             displayField: 'dblist', 
            } 

et JSON URL des retours django comme celui-ci

http://localhost:8000/loginjson.json 

{"row": [{"dblist": "datalist"}]} 

mais mon combobox n'est pas rempli Il me manque quelque part sur extJS mais je n'ai pas pu le trouver.

Répondre

4

Si vous attendez ComboBox à se comporter plus comme un champ HTML select puis ajouter à votre ComboBox config la propriété:

triggerAction: 'all' 

Cela garantira que tous les éléments du mémorisables s'affiche lorsque vous cliquez sur le bouton de déclenchement du champ.

La config ComboBox sera également une propriété ValueField ayant besoin de:

valueField: 'dblist' 

En outre, appeler explicitement la méthode de chargement du magasin est pas nécessaire. Le ComboBox va gérer cela pour vous au moment opportun.

+0

@owlness Merci à la première tentative cela a fonctionné, pouvez-vous me suggérer un pdf ou un portail en ligne, qui peut m'aider à résoudre de tels problèmes. comme je suis dummy pour extjs en ce moment. – shahjapan

+0

La meilleure ressource sur ExtJS est le site ExtJS (http://www.extjs.com/). Entre la documentation de l'API, les forums, les exemples et le wiki («Learning Center»), il y a beaucoup de connaissances à obtenir. – owlness

+0

Vous m'avez sauvé beaucoup d'efforts. Merci la chouette – Sandeep

0

Je pense que la propriété fields de votre lecteur JSON n'est pas configurée correctement. Essayez ceci:

reader: new Ext.data.JsonReader({ 
      root: 'row' 
     , fields:[{name: "dblist"}] 
     }) 
+0

Les noms de chaînes simples sont acceptés dans un tableau de champs de lecteur. Ils saisissent par défaut 'auto'. – owlness

+1

Merci chouette! –

Questions connexes