본문 바로가기
.NET

Telerik RadGridView drag and drop 할 때 row index 확인 방법

by leo21c 2022. 6. 27.

Telerik 예제를 보고 GridView의 Drag and drop 테스트 프로그램을 개발하는 중에 drop을 할 때 row index 찾는 방법을 알 수가 없어서 고생을 했다.

 

검색을 해 보다가 찾은 방법을 기록으로 남긴다.

나중에 또 이용을 할 때 도움이 되길 바라면서 말이다.

 

drop 함수의 코드이다.


private void gridPoint_ProcessDragDrop(object sender, RadDropEventArgs e)
{
    SnapshotDragItem draggedSnapshot = e.DragInstance as SnapshotDragItem;

    if (draggedSnapshot == null)
    {
        return;
    }

    GridDataRowElement rowElement = draggedSnapshot.Item as GridDataRowElement;
    var dragGrid = rowElement.ElementTree.Control as RadGridView;           

    var dropTarget = e.HitTarget as RadItem;
    var targetGrid = dropTarget.ElementTree.Control as RadGridView;

    var dropRowElement = dropTarget as GridDataRowElement;
    if (dropRowElement == null)
        return;

    int rowIndex = dropRowElement.RowInfo.Index;

    if (targetGrid == null || targetGrid != radGridView)
    {
        return;
    }

먼저 e.HitTarget를 이용해서 RadItem 객체를 구한다.

var dropTarget = e.HitTarget as RadItem;

그리고 RadItem 객체를 이용해서 GridDataRowElement 객체를 구한다.

GridDataRowElement 객체를 통해 RowInfo를 확인할 수 있는데 이 것을 통해 row index를 구할 수 있다.

int rowIndex = dropRowElement.RowInfo.Index;