我有点困惑如何在我的剑道网格中绑定响应。
获取响应表单服务,如下所示
我需要在Grid中显示响应,如下所示
我使用angular js,MVC和kendo来创建网格。
在Grid中修改我的响应数据最好。在MVC或Angular js中。
感谢预支
发布于 2016-09-22 20:28:11
我认为你不能在原生网格中做到这一点。但您可以使用变通方法-更改您的数据以表示必要的视图。
我在这里修改了某人的小提琴:http://jsfiddle.net/SugMK/47/
首先您必须对您的数据进行分组,在本例中,uid
确定id
和title
,因此您可以在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.
});
Third您必须将聚合字段(代码)的encoded
参数设置为false
,以便将您的br
表示为HTML而不是文本:
{ field: "code", title: "multiline", encoded: false }
附注:我认为你可以创建自己更好的实现,但我创建这个例子是为了更好地理解我的想法。
发布于 2016-09-22 20:55:21
如果您更喜欢让网格的数据源处理数据分组和聚合,那么只需使用网格的数据源。下面的代码是剃刀语法,然而,在Kendo ui js中有一个直接等效的语法。
DataSource(dataSource => dataSource
.Server()
.Aggregates(aggregates =>
{
aggregates.Add(p => p.Amount).Sum();
})
.Group(groups => groups.Add(p => p.CustomerName)
)
https://stackoverflow.com/questions/39637053
复制相似问题