2010-12-04 7 views
0

Je veux savoir s'il est possible de remplir l'objet suivant dans une grille de dojoobjet complexe dans Dojo Grille

Tout d'abord, l'objet principal est un tableau d'objets avec 3 champs, 2 ints et un autre tableau d'objets avec 5 champs. Ma question est, je peux mettre en place une mise en page pour la grille de dojo pour remplir une grille avec « sous-lignes »

Voici un exemple JSON

[{"ClaimID":1,"ClaimNumber":"4304021","LossDetails":[{"LossCause":"COLLISION      ","LossDate":"\/Date(1136786400000-0600)\/", 
    "LossExpense":95.00,"LossPaid":6415.21,"LossReserve":0.00},{"LossCause":"BODILY INJURY     ","LossDate":"\/Date(1136786400000-0600)\/", 
    "LossExpense":0.00,"LossPaid":250.00,"LossReserve":0.00},{"LossCause":"MEDICAL PAYMENTS    ","LossDate":"\/Date(1136786400000-0600)\/", 
    "LossExpense":0.00,"LossPaid":0.00,"LossReserve":0.00},{"LossCause":"PROPERTY DAMAGE    ","LossDate":"\/Date(1136786400000-0600)\/", 
    "LossExpense":0.00,"LossPaid":1893.99,"LossReserve":0.00}]}] 
+0

Bonjour, bienvenue sur Stackoverflow! Prenez le temps de vous familiariser avec les outils de formatage, afin que les utilisateurs puissent facilement lire vos exemples. –

Répondre

2

Vous pouvez utiliser dojox.grid.TreeGrid, la mise en page ressemble à:

new dojox.grid.TreeGrid({ 
    structure: [ 
     { cells: [ 
      [ 
       { field: "ClaimID", name: "ID" }, 
       { field: "ClaimNumber", name: "Number"}, 
       { field: "LossDetails", 
        children: [ 
         { field: "LossExpense", name: "LossExpense"}, 
         { field: "LossCause", name: "LossCause" }, 
         { field: "LossPaid", name: "LossPaid" }, 
         { field: "LossReserve", name: "LossReserve" }, 
         { field: "LossDate", name: "LossDate" } 
        ] 
       } 
      ]] 
     }     
    ], 
    store: jsonStore, 
    queryOptions: {deep: true} 
}, dojo.byId("grid")); 
+0

Réponse fabuleuse ... Mais Plz Pouvez-vous s'il vous plaît modifier et ajouter du code complet, y compris store et treeGrid dojo variable ... – Wazzzy

2

Ou si vous voulez juste une seule cellule contenant certains enfants objets de données, vous pouvez joindre un formatter à une cellule:

{ name: "Child data", field: "field_object", formatter: present_child_info} 
... 
function present_child_info(value) { 
var s = ""; 
for(var i = 0; i < value.length; i++) { 
s += value[i].attribute; 
} 
return s; 
} 
Questions connexes