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 に答える