【问题标题】:Select Kendo UI ListView Item选择 Kendo UI ListView 项目
【发布时间】:2015-03-13 15:01:01
【问题描述】:

使用 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 中的该点被选中。

我怎样才能做到这一点,以便在重新加载时将项目显示为已选择?有什么建议吗?

谢谢

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我传入的代码是 DataItem 的值。我怎样才能从数据源中获取整个 DataItem 并仅具有值?
    • 您可以遍历数据项并找到它。使用dataSource.view() 从数据源中获取项目数组。
    • 完美。效果很好。我在这个上画了一个空白,谢谢。
    • 是的,如果文档清楚地说明只能传递一个 DOM 元素作为参数,那就太好了(在撰写本文时,它没有) - docs.telerik.com/kendo-ui/api/javascript/ui/… 目前的情况迫使我认为,相当糟糕的代码,当我已经拥有所需的数据对象时
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多