我有一个带有拖动功能的剑道网格,可以重新排序网格行。
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“编辑”命令的方法,并使用它来禁用可拖动性。当然,我需要在用户离开内联编辑模式后重新启用拖动。
有什么想法吗?
答案 0 :(得分:5)
您可以让过滤器排除当前正在编辑的行。
grid.table.kendoDraggable({
filter: "tbody > tr:not(.k-grid-edit-row)",