0

Я использую сетку kendo ui и дерево на странице cshtml и хочу перетащить несколько строк из сетки в дерево. Я могу перетащить одну строку из сетки в дерево, но для нескольких элементов такой же подход не работает.Kendo UI: Как перетащить несколько элементов из сетки 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 
}); 

выше фрагмент коды работает для перетаскивания одной строки из сетки к дереву.

Но если я изменю определение сетки для выбора нескольких строк, событие drop на kendoDropTarget больше не будет запущено.

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

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

ответ

0

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

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

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

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