获取绑定到Kendo ListView中每个列表项的项和对象

时间:2016-11-24 23:25:05

标签: javascript jquery kendo-ui kendo-listview

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

enter image description here

单击“保存”按钮,我需要从kendo列表视图中获取已选中的元素。使用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很新,所以不了解太多方法。

1 个答案:

答案 0 :(得分: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}],
                });

您可以更新您的模板,以便在您的dataSource中检查为true并且您可以将复选框设置为已选中状态,并且当已选中时将未选中状态设置为false。

当您点击保存时,请在您的dataSource上执行.filter()以获取已检查的项目。

dataSource.filter( { field: "checked",  value: "true" });
var view = dataSource.view();
console.log(view);