使用Kendo ListView,当我的页面重新加载时,如果已经进行了选择,我需要让我的代码自动选择先前选择的ListView项。我可以通过迭代数据源集合来获取Kendo DataItem,但是当我执行listView.select(item)时,UI不会显示任何选定内容。
以下是我的列表视图:
以下是我的列表视图:
$("#listview").kendoListView({
dataSource: coverages,
template: kendo.template($("#listTemplate").html()),
selectable: true,
change: function() {
var index = this.select().index();
dataItem = this.dataSource.view()[index];
if (selectedCoverageCode == null) {
selectedCoverageCode = dataItem;
}
onCodeChanged(categoryId, planId, dataItem);
}
});
以下是我设置之前选定项的代码:
function setSelectedCoverageCode(code) {
var listView = $("#listview").data("kendoListView");
var dataSource = listView.dataSource.view();
if (listView) {
$.each(dataSource, function(index, item) {
if (item.Code === code) {
listView.select(item);
selectedCoverageCode = item;
}
});
}
}
我认为我需要DOM对象而不是数据源DataItem。上述的setSelectedCoverageCode函数会触发Change事件,但实际元素在DOM中并未被选中。
我该如何做才能在重新加载时将项目显示为已选择?有什么建议吗?
谢谢
dataSource.view()
从数据源中获取项目数组。 - CodingWithSpike