Kendo UI:如何将多个项目从kendo ui grid拖放到树中?

时间:2015-01-14 17:00:53

标签: kendo-ui kendo-grid kendo-treeview kendo-draggable kendo-droptarget

我在cshtml页面中使用了kendo ui网格和树,并希望将多行从网格拖放到树中。我能够将一行从网格拖放到树中,但对于多个项目,同样的方法不起作用。

以下是我的代码段:

$("#grid").kendoGrid({
    selectable: "row",
    sortable: true,
    pageable: true,
    columns: .......

$("#treeview").kendoTreeView({
    dragAndDrop: true
});

我的kendoDraggable和kendoDropTarget事件:

$("#grid").kendoDraggable({
    filter: "tr",
    hint: function () {
        var g = $("#grid").data("kendoGrid")
        return g.select().clone()
    }
});

$("#treeview").kendoDropTarget({
    drop: droptargetOnDrop
});

上面的代码段用于将单行从网格拖到树中。

但是,如果我更改多行选择的网格定义,则不会再触发kendoDropTarget drop事件。

$("#grid").kendoGrid({
    selectable: "multiple",
    sortable: true,
    pageable: true,
    columns: .......

如果我做错了任何可能的解决方案,请告诉我。

1 个答案:

答案 0 :(得分:0)

由于可选事件和拖动事件都以优先选择的事件触发,因此网格上的多个选择不能很好地拖放。

要解决此问题,您可以在拖动时取消可选事件。

要执行此操作,请更改kendoDraggable配置以在dragstart函数中包含以下内容:

dragstart: function (e) {
    $('#grid').data("kendoGrid").selectable.userEvents.cancel();
}