티스토리 뷰

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


댓글
댓글쓰기 폼
공지사항
Total
135,130
Today
14
Yesterday
201
«   2019/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
글 보관함