选择Kendo UI ListView项目

时间:2015-03-13 15:01:01

标签: javascript jquery listview kendo-ui kendo-listview

使用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中的那个点上没有选择实际元素。

我怎样才能这样做,这样我可以在重新加载时显示已经选中的项目?建议?

由于

1 个答案:

答案 0 :(得分:5)

您可以通过查找其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 + '"]'));