2013-01-15 3 views
1

je le JSON suivant que je dois groupe à l'intérieur d'un Ext JS 4 Grille:Ext JS JSON Grille Groupement

{ 
root: { 
    type: 'viewer', 
    people: ['person a', 'person b', 'person c'] 
}, 
{ 
    type: 'editor', 
    people: ['person c', 'person d'] 
} 
} 

je n'ai absolument aucune idée où commencer à représenter ces données dans une grille ExtJS.

Mais, voici ce que j'ai jusqu'à présent:

var myModel = Ext.create('Ext.data.Model', { 
    fields: ['type', 'people'] 
}) 

var myStore = Ext.create('Ext.data.Store' , { 
    data: (JSON above), 
    model: myModel, 
    groupField: 'type', 
    proxy: { 
     type: 'memory', 
     reader: { 
      type: 'json', 
      root: 'root' 
     } 
    } 
}); 

var myGrid = Ext.create('Ext.grid.Panel', { 
    store: myStore, 
    columns: [ 
     {header: 'Name', dataIndex: 'people'} 
    ] 
}) 

.... other code to display the grid 

je reçois une grille pour montrer, mais il n'a pas le groupe et il n'y a pas de données montrant l'intérieur de la grille. Pour une raison quelconque, je pense que j'ai besoin d'un modèle plus élaboré, cependant, puisque l'objet "people" est juste un tableau de chaînes, je ne sais pas comment dire à la définition de la colonne quel est l'index de données.

Toute aide est très appréciée.

Merci.

+0

Vous avez une virgule 'var myGrid = '<- here' – A1rPun

+0

Ouais ... Je devais taper tout cela à la main .. Il n'y a pas d'erreurs de syntaxe dans la boîte en cours d'exécution. Je l'ai réparé, merci. –

+1

votre json n'est pas valide. n'est pas root un tableau d'objets? –

Répondre

3

Vous devez utiliser la fonction de regroupement sur la grille.

Cette fonction permet d'afficher les lignes de la grille regroupés en groupes comme spécifiés par les Ext.data.Store.groupers spécifiées sur le magasin. Le groupe affichera le titre du nom du groupe, puis les enregistrements appropriés pour le groupe en dessous. Les groupes peuvent également être développés et réduit.