0

我有两个 Kendo UI ListViews。我能够获取加载和显示值的可用选项列表。我还能够使拖动功能正常工作。问题是目的地的丢弃功能。我可以让第二个 ListView 注册为 dropTarget,但我无法确定如何将可拖动对象添加到目标 ListView。

以下是相关代码:

    var groupDataSource = getReadGroupsDataSourceFor(2819);

    try {
        var readgroups = $("#availableReadGroups").kendoListView({
            selectable: "single",
            navigatable: false,
            template: "#if(!IsSelectedGroup) {# <div style='font-size:13px;padding-left:5px;padding-top:5px;'>${GroupName}</div>#} else {# <div class=\"k-state-selected\" style=\"font-size:13px;padding-left:5px;padding-top:5px;\" aria-selected=\"true\">${GroupName}</div> #}#",
            dataSource: groupDataSource
        });

        var selectedGroups = $("#selectedGroupsValues").kendoListView({
            selectable: "single",
            navigatable: false,
            template: "#if(!IsSelectedGroup) {# <div style='font-size:13px;padding-left:5px;padding-top:5px;'>${GroupName}</div>#} else {# <div class=\"k-state-selected\" style=\"font-size:13px;padding-left:5px;padding-top:5px;\" aria-selected=\"true\">${GroupName}</div> #}#",
        });

        readgroups.kendoDraggable({
            filter: "div[role=option]",  
            hint: function (row) {
                return row.clone();
            }
        });

        selectedGroups.kendoDropTarget({
            drop: function (e) {
                var lvObject= selectedGroups.data();
                lvObject.kendoListView.dataSource.add(e.draggable);
            }
        });
    } catch (err) {
        alert(err);
    }
4

1 回答 1

1

我终于想出了一个答案,让它在我的机器上的 IE 和 FireFox 中工作;不过,我无法让这个解决方案在 jsFiddle 中工作,而且我不知道为什么。

这是代码:

selectedGroups.kendoDropTarget({
        drop: function (e) {
            var lvObject= selectedGroups.data();
            lvObject.kendoListView.dataSource.add(readgroups.data("kendoListview").dataSource.getByUid(e.draggable.hint.data().uid));
        }
    });

提示属性显然包含 jQuery 对象,该对象又具有数据方法。当您执行 data 方法时,唯一返回的是具有属性 uid 的对象。使用它,您可以在可拖动对象的数据源的数据源中搜索数据项。数据项是您要提供给目标数据源的 add 方法的内容。

于 2013-02-16T01:24:53.853 回答