我不确定我的方案的最佳方式是什么,所以我先解释一下。
我有两个数据源。人员和团体,每个人物品都有一个指示器,它属于哪个组。这些人绑定到剑道网格,并将组绑定到< ul>。我的问题是,我想在组外显示一个count-number,表示该组中有多少人 - 这些信息是根据人员数据源计算的,而不是组本身的一部分。
对于这个一般性问题感到抱歉 - 但我真的很挣扎......
更新:这就是我现在所拥有的:
var contactGroupsDataSource = new kendo.data.DataSource({
transport: {
read: {
url: "api/contactgroups"
}
}
});
$('#contactGroupsList').kendoListView({
dataSource: contactGroupsDataSource,
template: "<li class='contactGroupListItem' data-number='${Number}'>${Number} ${Name} (<span data-bind="text: cgcount[1]"></span>) </li>"
});
viewModel = kendo.observable({
contactsDataSource: new kendo.data.DataSource({
transport: {
read: {
url: "api/contacts"
}
},
schema: {
model: {
id: "Id",
fields: {
id: { type: "string" },
FirstName: { type: "string" },
LastName: { type: "string" },
ContactGroupNumber: { type: "integer" }
}
}
},
change: function (e) {
var data = this.data();
for (var i = 0; i < data.length; i++) {
var cg = data[i]["ContactGroupNumber"];
viewModel.cgcount.splice([cg - 1], 1, viewModel.cgcount[cg - 1] + 1);
}
for (var i = 0; i < 7; i++) {
console.log(i + 1 + ': ' + viewModel.cgcount[i]);
}
}
}),
cgcount: new kendo.data.ObservableArray([0, 0, 0, 0, 0, 0, 0])
});
kendo.bind($("#contactsGroupContainer"), viewModel);
contactsListView = $('#contactsList').kendoGrid({
dataSource: viewModel.contactsDataSource,
sortable: true,
rowTemplate: kendo.template($("#rowTemplate").html())
});
丹尼尔