Интерфейс 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();
}