【问题标题】:In a Kendo Grid, how I do disable dragging while doing an inline edit?在剑道网格中,如何在进行内联编辑时禁用拖动?
【发布时间】:2013-02-27 15:03:50
【问题描述】:

我有一个带有可拖动对象的剑道网格,以允许重新排序网格行。

        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"]
}

但是,当尝试单击可编辑字段时启用拖动时,Kendo 网格会做一些令人讨厌的事情。当我注释掉 kendoDraggable 代码时,编辑工作得很好。我正在寻找一种捕获 kendoGrid“编辑”命令并使用它来禁用可拖动性的方法。当然,我需要在用户离开内联编辑模式后重新启用拖动。

有什么想法吗?

【问题讨论】:

    标签: javascript jquery kendo-ui


    【解决方案1】:

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

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

    Here is live example.

    【讨论】:

    • 你救了我)真是个好主意
    猜你喜欢
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多