我有一个剑道列表视图,其中每个项目都是复选框和一些文本字段的组合,如下图所示:
单击“保存”按钮,我需要从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很新,所以不了解太多方法。
答案 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);