繁体   English   中英

选择Kendo UI ListView项

[英]Select Kendo UI ListView Item

使用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中选择实际元素。

如何执行此操作,以便每次重新加载时都可以将其显示为已选中? 建议?

谢谢

您可以通过查找数据项的UID来获取该数据项的DOM元素。

var item = // the item out of the DataSource that you want to select
var listView = $("#listview").data("kendoListView");

listView.select(listView.element.find('[data-uid="' + item.uid + '"]'));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM