0

我有一个剑道列表视图,其中每个项目都是复选框和一些文本字段的组合,如下图所示:

在此处输入图像描述

单击保存按钮时,我需要从剑道列表视图中获取选中的元素。使用 items() 或 dataItems() 方法,我得到代表模板但不是我实际需要的项目列表,即已检查的项目。

如何确定该特定列表项是否被选中?

代码如下:

<div id='lstItems'></div>

    var _dataSource = new kendo.data.DataSource({
                    data: [{ Title: "Item 1", ID: 121 }, { Title: "Item 2" , ID: 122}, { Title: "Item 3" , ID: 123}],
                });

    $("#lstItems").kendoListView({
                    dataSource: _dataSource ,
                    template: "<div><label><input type='checkbox'/>#:Title#</label></div>"
                });

我还有一个问题,我需要将整个对象绑定到一个列表项,以便在获取选中项时,我可以获得包含 2 个属性的完整对象: Title, ID 。

我对 kendo.js 和 HTML 很陌生,所以不太了解很多方法。

4

1 回答 1

0

如果您可以向 ViewModel 添加一个布尔值,例如:

var _dataSource = new kendo.data.DataSource({
                    data: [{ Title: "Item 1", ID: 121, checked: false }, { Title: "Item 2" , ID: 122, checked: true}, { Title: "Item 3" , ID: 123, checked: true}],
                });

并且您可以更新您的模板,这样,如果您的数据源中选中为 true,并且您可以将复选框设置为选中状态,并且选中时未选中状态设置为 false。

当您可以单击保存时,请在数据源上执行 .filter() 以获取已检查的项目。

dataSource.filter( { field: "checked",  value: "true" });
var view = dataSource.view();
console.log(view);
于 2017-10-25T13:37:12.423 回答