0

문제 : (양방향) 다른 하나 개의 격자의 드래그 앤 드롭의 결과는 행 데이터 적절한 제대로 정렬되지으로 초래 머리글.검도 MCV 그리드 행 드래그 후 유지 그리드 사이 떨어지지 서식

드래그 앤 드롭하기 전에 : 후 는 enter image description here

난 그냥 열을 게시합니다, 간결함을 위해 enter image description here

(행이 다른 테이블 삭제, 다시 원래 테이블에 떨어졌다) 그리드에 대한 정의. 모눈은 동일한 모델을 사용하지만 두 모눈 모두에서 모든 열을 볼 수있는 것은 아닙니다.

GRID1 :

... 
    .Name("Group1") 
    .Columns(columns => 
      { 
       columns.Bound(e => e.FlagId).Hidden(true); 
       columns.Bound(e => e.TransactionId).Hidden(true); 
       columns.Bound(e => e.EmployeeId).Hidden(true); 
       columns.Bound(e => e.EmployeeName); 
       columns.Bound(e => e.FlagDate).Hidden(true); 
       columns.Bound(e => e.FlagCreatedById).Hidden(true); 
       columns.Bound(e => e.FlagCreatedBy).Hidden(true); 
       columns.Bound(e => e.Reason).Hidden(true); 
       columns.Bound(e => e.Score).HtmlAttributes(new { @class = "currency" }); 
         columns.Bound(e => e.NumberOfTransactions).HtmlAttributes(new { @class = "currency" }); 
         columns.Bound(e => e.TotalAmount).HtmlAttributes(new { @class = "currency" }); 
        }) 
    ... 

그리드 2 :

... 
    .Name("Group2") 
    .Columns(columns => 
      { 
       columns.Bound(e => e.FlagId).Hidden(true); 
       columns.Bound(e => e.TransactionId).Hidden(true); 
       columns.Bound(e => e.EmployeeId).Hidden(true); 
       columns.Bound(e => e.EmployeeName); 
       columns.Bound(e => e.FlagDate); 
       columns.Bound(e => e.FlagCreatedById).Hidden(true); 
       columns.Bound(e => e.FlagCreatedBy); 
       columns.Bound(e => e.Reason); 
       columns.Bound(e => e.Score).HtmlAttributes(new { @class = "currency" }); 
       columns.Bound(e => e.NumberOfTransactions).Hidden(); 
       columns.Bound(e => e.TotalAmount).HtmlAttributes(new { @class = "currency" }); 
      }) 
    ... 

드롭 자바 스크립트 :

대신 DOM을 가지고 노는의
group1.kendoDropTarget({ 
     drop: function (e) { 
      console.log("e.draggable.currentTarget: %O", e.draggable.currentTarget); 

      e.dropTarget.append($(e.draggable.currentTarget).clone()); 
      $(e.draggable.currentTarget).remove(); 
     }, 
     group: "gridGroup2" 
    }); 

답변

1

-이 경우 좋은 방법이 아닙니다 , - 대상 그리드에 데이터 만 복사하고 추가하십시오.

drop: function(e) { 
    var sourceGrid = $(e.draggable.element).data("kendoGrid"), 
     dataItem = sourceGrid.dataItem(e.draggable.currentTarget); 

    $(e.dropTarget).data("kendoGrid").dataSource.add(dataItem); 
} 

Demo