2016-09-22 91 views
0

我有點混淆瞭如何綁定我的劍道網格中的響應。將Json響應綁定到Kendo網格

獲取響應形式的服務象下面

enter image description here

我需要顯示在網格的響應如下所示

enter image description here

我使用角JS,MVC和劍術爲網格。

這是最好的修改我在網格中的響應數據。在MVC或Angular js中。

感謝提前

+0

劍道網格具有按鍵組合行的功能。你可以試試。 – Nilesh

回答

0

我認爲你不能在網格中原生。但是,您可以使用解決方法 - 更改您的數據以表示必要的視圖。

我修改別人的小提琴這裏:http://jsfiddle.net/SugMK/47/

首先你必須組合你的數據,你比如uid決定idtitle,所以您可以將它放在uid

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

迭代結果對象,其結構像

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

並聚集(或不)必要的行與你自定義的邏輯。在你的情況,你必須用br結合兩個code領域的文本作爲分隔符:

_.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. 
}); 

您必須彙總字段(代碼)encoded參數設置爲false,用於表示您br的如HTML,不正文:

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

PS我認爲你可以創建自己更好的實現,但是我創建了這個例子來更好地理解我的想法。

0

如果您希望讓網格的數據源處理數據分組和聚合,那麼只需使用網格的數據源即可。下面的代碼是razor語法,但是,在Kendo ui js中有一個直接的等價物。

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