2
使用Kendo ListView,当我的页面重新加载时,如果已经做出选择,我需要让我的代码自动选择先前选择的ListView项目。我能够通过迭代数据源集合获得Kendo DataItem,但是当我做listView.select(item)时,UI不会显示任何选中的内容。选择Kendo UI ListView项目
这里是我的列表视图:
$("#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中的那个点上被选中。
如何才能做到这一点,以便我可以在发生重新加载时显示已经选择的项目?建议?
谢谢
我传入的代码是DataItem的值。我怎么才能从数据源中获得整个DataItem,只有它的价值? – Encryption 2015-03-13 17:40:47
你可以循环访问数据项并找到它。使用'dataSource.view()'从数据源中获取项目数组。 – CodingWithSpike 2015-03-13 17:59:22
完美。效果很好。我在这一张上留下了一片空白,谢谢。 – Encryption 2015-03-13 18:14:59