2013-02-27 70 views
2

我有一個可拖動的劍道網格,它可以重新排序網格行。在Kendo Grid中,我如何在進行內聯編輯時禁用拖動?

 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「編輯」命令並使用它來禁用可拖動性的方法。當然,我需要在用戶離開內聯編輯模式後重新啓用拖動。

有什麼想法?

回答

5

您可以使過濾器排除當前正在編輯的行。

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

Here is live example

+0

你救了我)真的好主意 – 2014-09-24 08:41:42

相關問題