Интерфейс Kendo: Как перетащить несколько элементов из сетки Kendo UI в дерево?

Я использую kendo ui grid и tree на странице cshtml и хочу перетащить несколько строк из сетки в дерево. Я могу перетащить одну строку из сетки в дерево, но для нескольких элементов один и тот же подход не работает.

Вот мои сегменты кода:

$("#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: .......

Пожалуйста, дайте мне знать, если я делаю что-то не так и любое возможное решение этой проблемы.

1 ответ

Множественное выделение на сетке не очень хорошо работает с перетаскиванием из-за того, что выбираемые события и события перетаскивания запускаются с выбираемыми событиями, имеющими приоритет.

Чтобы обойти это, вы можете отменить выбранное событие при перетаскивании.

Для этого измените конфигурацию kendoDraggable, включив в функцию dragstart следующее:

dragstart: function (e) {
    $('#grid').data("kendoGrid").selectable.userEvents.cancel();
}
Другие вопросы по тегам