0

하나의 Infragistics DataGrid에서 다른 대상으로 항목을 드래그 할 수 있고 대상 그리드의 항목도 정렬 할 수 있기를 원합니다.정렬 가능으로 연결된 드래그 가능

Infragistics 컨트롤을 사용할 수 없기 때문에 안타깝게도 jsfiddle을 사용할 수 없습니다.

$("[id*=sourceGrid] [id*=dataTbl] tbody tr").draggable({ 
    helper: "clone", 
    revert: "invalid", 
    connectToSortable: '[id*=destination]'     
}); 

$("[id*=destinationGrid]").sortable({ 
    cursor: 'move', 
    helper: fixHelperModified,  
    revert: true, 
    items: "[id*=container] [id*=dataTbl] tbody tr:not(.placeholder)",     
    receive: function (event, ui) {      
     var grid = $IG.WebDataGrid.find("destinationGrid");     
     $sentence = $(ui.item).find("td").eq(0).html(); 
     var row = new Array(Math.floor((Math.random() * 100) + 1), $sentence, $order); 
     grid.get_rows().add(row);     
    } 
}); 

문제는 : 나는 destinationGrid에 sourceGrid에서 항목을 삭제할 때, 원하지 않는 새로운 그리드에 배치되는 드래그 - 난 단지 새 행을 만들 수신 함수를 사용하려면 드래그 가능한 요소의 값으로 그리드에. 지금은 새로 생성 된 gridRow와 삭제 된 항목 모두를 얻습니다. 어떻게 방지 할 수 있습니까?

+1

당신은 무엇을 시도? "도우미"메소드를 * original *으로 변경 한 다음 drop에서'remove()'로 바꾸는 것은 어떻습니까? – DevlshOne

+0

죄송합니다, 언급하는 것을 잊어 버렸습니다. 나는 '복제'행동이 필요하다. 나는 움직이기를 원하지 않지만, 출처에서 목적지까지 아이템을 복제하고 소스에서 여전히 가지고 있습니다. receive 이벤트에서 ui.item을'remove()'할 때, 나는 sourceGrid에서 원래의 행을 삭제합니다. 이 동작은 완전히 이상한데 왜 ui.item이 끌었던 원래 요소이고 복제 된 자리 표시자가 아닌지 이해할 수 없습니다. – user66875

+1

'sourceGrid'를 * sortable() *로 만들려고 했습니까? 또한,'receive' 이벤트에서 console.log에 * ui.helper *를 사용할 수 있습니까? – DevlshOne

답변

1

beforeStop 이벤트에서 복사 된 항목을 잡을 수 있습니다. 이 답변에

var newItem; 

$(".list").sortable({ 
    connectWith: ".list", 
    beforeStop: function (event, ui) { 
     newItem = ui.item; 
    }, 
    receive: function(event,ui) { 
     $(newItem).doSomething(); 
    } 
});​ 

참조 및 신용 : https://stackoverflow.com/a/5864644/3523694

+0

고마워요! 그게 내 문제를 해결 했어! – user66875