0

我不确定哪种方法最适合我的方案,所以我先解释一下。

我有两个数据源。Persons and Groups,每个 Person-Item 都有一个指示符,表示它属于哪个组。人员绑定到剑道网格,组绑定到<ul>。我的问题是,我想在组之外显示一个计数,这表明该组中有多少人 - 此信息是根据人员数据源计算的,而不是组本身的一部分。

很抱歉这个一般性问题 - 但我真的在努力解决这个问题......

更新:这是我现在拥有的:

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())
    });

丹尼尔

4

0 回答 0