0

我在 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 放置事件。

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

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

4

1 回答 1

0

由于可选事件和拖动事件都以可选事件优先而触发,因此网格上的多项选择不能很好地与拖放配合使用。

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

为此,请更改您的 kendoDraggable 配置以在您的 dragstart 函数中包含以下内容:

dragstart: function (e) {
    $('#grid').data("kendoGrid").selectable.userEvents.cancel();
}
于 2015-03-30T03:41:41.870 回答