Get multiselect rows index after sorting GridControl with DataTable
DevExpress 의 GridControl 사용 시,
DB로부터 받은 DataTable 형식의 데이터를 DataSource 속성에 넣었다.
1 2 | var table = new DataTable(); // from DB this.gridControl1.DataSource = table; | cs |
그러면 자동으로 컬럼이 입력된다.
여기서, 선택된 Row의 Index를 가져오려면 두가지 속성을 사용할 수 있다.
출처 : DevExpress Identifying Rows and Cards
위 이미지와 같이 그냥 GetSelectedRows() 로 가져오는 것과, RowHandle로 가져오는 방법이 있다.
그런데, GridControl의 컬럼을 클릭하여 정렬했을 때, 그냥 index를 가져오면 컬럼이 맞지 않게된다.
아래와 같이, GetDataSourceRowIndex 메소드를 사용하여 index를 변환해주어야 한다.
1 2 3 4 | // Visible Index var visibleIndex = this.gridView1.GetSelectedRows().toList(); // DataSource Index var dataSourceIndex = gridView1.GetDataSourceRowIndex(visibleIndex); | cs |
dataSourceIndex를 보면 정렬하기 전, 초기의 Index 값이 들어있는것을 확인할 수 있을 것이다.
참고 : DevExpress ColumnView.GetDataSourceRowIndex Method
'컴퓨터 > DX C#' 카테고리의 다른 글
[DevExpress] PropertyGrid 사용 중 확장되지 않는 속성 문제 (0) | 2016.01.28 |
---|---|
[C#] GridView 속성 중 FocusRectStyle 에 관하여 (0) | 2015.07.09 |
[DX] DevExpress.XtraGrid.Views.BandedGrid 사용하기 (0) | 2015.04.15 |
[DevExpress] C# 리본 UI 스킨 적용 할 때, Form Boundary Areo 없애기 (0) | 2015.04.02 |