在剑道网格中,我如何在进行内联编辑时禁用拖动

In a Kendo Grid, how I do disable dragging while doing an inline edit?

本文关键字:编辑 拖动 网格      更新时间:2023-09-26

我有一个剑道网格与可拖动连接到它允许网格行重新排序。

        grid.table.kendoDraggable({
            filter: "tbody > tr",
            group: "gridGroup",
            hint: function (e) {
                return $('<div class="k-grid k-widget"><table><tbody><tr>' + e.html() + '</tr></tbody></table></div>');
            }
        });
        grid.table.kendoDropTarget({
            group: "gridGroup",
            drop: function (e) {
                e.draggable.hint.hide();
                var target = dataSource.getByUid($(e.draggable.currentTarget).data("uid")),
                    dest = $(document.elementFromPoint(e.clientX, e.clientY));
                if (dest.is("th")) {
                    return;
                }
                dest = dataSource.getByUid(dest.parent().data("uid"));
                if (target.get("Id") !== dest.get("Id")) {
                    var tmp = target.Priority;
                    target.Priority = dest.Priority;
                    dest.Priority = tmp;
                    dataSource.sort({ field: "Priority", dir: "asc" });
                }
            }
        });

我还可以通过设置

来进行内联编辑
editable: "inline"

{
    command: ["edit"]
}

然而,剑道网格做一些拧东西时,拖动是启用的,而试图点击一个可编辑的字段。当我注释掉kendoDraggable代码时,编辑工作正常。我正在寻找捕获kendoGrid"编辑"命令的方法,并使用它来禁用可拖拽性。当然,我需要在用户离开内联编辑模式后重新启用拖动。

任何想法吗?

您可以使过滤器排除当前正在编辑的行。

grid.table.kendoDraggable({
  filter: "tbody > tr:not(.k-grid-edit-row)",