2016-09-22 3 views
0

Ich bin etwas verwirrt, wie die Antwort in meinem Kendo-Gitter zu binden.Bindung der JSON-Antwort an Kendo-Gitter

Erste das Antwortformular Service wie unten

enter image description here

Ich brauche die Antwort in Grid zeigen wie unten

enter image description here

gezeigt i Winkel js verwenden, MVC und Kendo für Gitter.

welches ist die beste, um meine Antwortdaten in Grid zu ändern. In MVC oder Angular js.

dank voran

+0

Das Kendo-Gitter verfügt über eine Funktion zum Gruppieren von Zeilen nach Schlüsseln. Du kannst es versuchen. – Nilesh

Antwort

0

Ich denke, man kann es nicht in Raster heimisch. Sie können jedoch eine Problemumgehung verwenden - ändern Sie Ihre Daten, um die erforderliche Ansicht darzustellen.

ich jemandes Geige verändert sich hier: http://jsfiddle.net/SugMK/47/

Erste Sie müssen Sie Gruppendaten, in Ihnen Beispiel uidid und title bestimmt, so können Sie Gruppe auf uid:

var result = _.groupBy(result, (item) => { return item.uid }); 

Zweite Iterate in Ergebnisobjekt, die Struktur wie

haben 210
{ 
    uid1: [ 
      {row1_with_uid1}, 
      {row2_with_uid1} 
      ], 
    uid2: [ 
      {row1_with_uid2}, 
      {row2_with_uid2} 
      ] 
} 

Und aggregieren (oder nicht) notwendige Zeilen mit Ihnen benutzerdefinierte Logik. In Ihrem Fall müssen Sie zwei code Felder als Text kombinieren mit br als Trennzeichen:

_.forEach(result, (items) => { 
    var newItem = items[0]; // set default. 

    items.splice(0, 1); // since first item is default - remove it from aggregate array 
    _.forEach(items, (item) => { newItem.code = newItem.code + "<br />" + item.code; }); // aggregate item. 

    newResult.push(newItem); // save aggregated item. 
}); 

Dritte Sie encoded Parameter aggregierter Feld (Code) zu false, für die Darstellung Ihrer br ist, als HTML gesetzt ist, nicht Text:

{ field: "code", title: "multiline", encoded: false } 

PS Ich denke, Sie können Ihre eigene, viel bessere Umsetzung schaffen, aber ich erschaffe dieses Beispiel, um meine Idee besser zu verstehen.

0

Wenn Sie es vorziehen, die Datenquelle des Gitters mit der Datengruppierung und Aggregation behandeln zu lassen, verwenden Sie einfach die Datenquelle des Gitters. Der folgende Code ist eine Rasierersyntax, es gibt jedoch ein direktes Äquivalent in Kendo ui js.

DataSource(dataSource => dataSource 
    .Server() 
    .Aggregates(aggregates => 
    { 
     aggregates.Add(p => p.Amount).Sum(); 
    }) 
    .Group(groups => groups.Add(p => p.CustomerName) 
)