Привязка ответа Json к сетке кендо

0

Я немного запутался, как связать ответ в моей сетке кендо.

Получение службы формы ответа, как показано ниже

Изображение 174551

Мне нужно показать ответ в Grid, как показано ниже

Изображение 174551

Я использую угловые js, MVC и kendo для Grids.

который лучше всего изменить мои данные ответа в Grid. В MVC или Angular js.

спасибо заранее

  • 0
    Сетка Kendo имеет функцию группировки строк по ключам. Вы можете попробовать это.
Теги:
asp.net-mvc

2 ответа

0

Я думаю, вы не можете сделать это в сетке. Но вы можете использовать обходной путь - изменить данные для представления необходимого вида.

Я изменил некоторые скрипты здесь: http://jsfiddle.net/SugMK/47/

Сначала вы должны сгруппировать свои данные, в вашем примере uid определяет id и title, поэтому вы можете сгруппировать его по uid:

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

Второй Iterate в приведенном объекте, который имеет структуру типа

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

И совокупность (или нет) необходимых строк с вашей пользовательской логикой. В вашем случае вы должны комбинировать два поля code как текст с br как разделитель:

_.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

Если вы предпочитаете, чтобы источник данных сетки обрабатывал группировку данных и агрегацию, просто используйте источник данных сетки. Ниже приведен код синтаксиса бритвы, однако в Kendo ui js имеется прямой эквивалент.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню