2016-07-25 39 views
0

Ich neu mit Kendo und ich habe ein Problem mit Kendo-Gitter. Ich habe Struktur wie dieseAnzeige Objekt innerhalb Objekt in Kendo Gitter

var data = [{ 
    key1: value1, 
    key2: value2, 
    objectInside: [{ 
     insideKey1: insideValue1, 
     insideKey2: insideValue2, 
     insideKey3: insideValue3 
    }, 
    { 
     insideKey1: insideValue1a, 
     insideKey2: insideValue2a, 
     insideKey3: insideValue3a 
    }, 
    { 
     insideKey1: insideValue1b, 
     insideKey2: insideValue2b, 
     insideKey3: insideValue3b 
    }] 
}]; 

und ich brauche Kendo Raster zu erstellen und füllen Sie es mit objectInside Elemente. Für jetzt kann ich eines der Elemente des Arrays anzeigen:

var grid = $("#grid").kendoGrid({ 
    pageable: true, 
    selectable: "row", 
    dataSource: data 
    columns : [ 
     { field: "objectInside.insideKey1[0]", title: "Value1:" }, 
     { field: "objectInside.insideKey2[0]", title: "Value2:" }, 
     { field: "objectInside.insideKey3[0]", title: "Value3:" } 
    ] 
}).data("kendoGrid"); 

Aber ich habe keine Idee, wie Sie alle Elemente erreichen. Ohne Indexierung funktioniert es nicht. Es ist möglich, hier eine Schleife zu machen? Ich habe darüber nachgedacht, eine andere Variable nur mit objectInside zu versehen und zu versuchen, nur dieses Element zu lesen, aber ich habe auch hier versagt. Ich versuche, es so zu tun:

var newData = data.objectInside; 

oder

var newData = JSON.stringify(data.objectInside); 

Könnte jemand mir einen Tip geben, wie man damit umgehen?

Antwort

1

Versuchen Sie, diese template:

{ template: "#= data.objectInside[0].insideKey1 #", title: "Value1" }, 
{ template: "#= data.objectInside[1].insideKey2 #", title: "Value2" }, 
{ template: "#= data.objectInside[2].insideKey3 #", title: "Value3" } 

Demo

Aber das zeigt nur eine Zeile, weil die Rasterdaten ein Element in der ersten Ebene enthält. Sie können like this tun, um alle Ihre Daten innerhalb insideObject anzuzeigen.

+0

Vielen Dank! :) – sebac13