출처 : http://www.devexpress.com/Support/Center/KB/p/A364.aspx?searchtext=two+gridview&tid=4b2d6f97-c4ae-48fc-87f6-8c5da6541e40&pid=-1
정렬 이벤트에서 미리 View 와 Rowhandle 을 잡아두고 정렬이 끝나면 이전 잡아둔 행으로 이동
새로고침 될때 사용하면 되겠네...
정렬 이벤트에서 미리 View 와 Rowhandle 을 잡아두고 정렬이 끝나면 이전 잡아둔 행으로 이동
새로고침 될때 사용하면 되겠네...
using DevExpress.XtraGrid;
using DevExpress.XtraGrid.Views.Grid;
...
object SaveFocusedRow = null;
private void gridView_StartSorting(object sender, System.EventArgs e) {
GridView view = sender as GridView;
SaveFocusedRow = view.GetRow(view.FocusedRowHandle);
}
private void gridView_EndSorting(object sender, System.EventArgs e) {
GridView view = sender as GridView;
int rowHandle = FindRowHandleByRowObject(view, SaveFocusedRow);
if(rowHandle != GridControl.InvalidRowHandle) {
view.FocusedRowHandle = rowHandle;
SaveFocusedRow = null;
}
}
private int FindRowHandleByRowObject(DevExpress.XtraGrid.Views.Grid.GridView view, object row) {
if(row != null)
for(int i = 0; i < view.DataRowCount; i++)
if(row.Equals(view.GetRow(i)))
return i;
return DevExpress.XtraGrid.GridControl.InvalidRowHandle;
}
private int FindRowHandleByDataRow(DevExpress.XtraGrid.Views.Grid.GridView view, DataRow row) {
if(row != null)
for(int i = 0; i < view.DataRowCount; i++)
if(view.GetDataRow(i) == row)
return i;
return DevExpress.XtraGrid.GridControl.InvalidRowHandle;
}
using DevExpress.XtraGrid.Views.Grid;
...
object SaveFocusedRow = null;
private void gridView_StartSorting(object sender, System.EventArgs e) {
GridView view = sender as GridView;
SaveFocusedRow = view.GetRow(view.FocusedRowHandle);
}
private void gridView_EndSorting(object sender, System.EventArgs e) {
GridView view = sender as GridView;
int rowHandle = FindRowHandleByRowObject(view, SaveFocusedRow);
if(rowHandle != GridControl.InvalidRowHandle) {
view.FocusedRowHandle = rowHandle;
SaveFocusedRow = null;
}
}
private int FindRowHandleByRowObject(DevExpress.XtraGrid.Views.Grid.GridView view, object row) {
if(row != null)
for(int i = 0; i < view.DataRowCount; i++)
if(row.Equals(view.GetRow(i)))
return i;
return DevExpress.XtraGrid.GridControl.InvalidRowHandle;
}
private int FindRowHandleByDataRow(DevExpress.XtraGrid.Views.Grid.GridView view, DataRow row) {
if(row != null)
for(int i = 0; i < view.DataRowCount; i++)
if(view.GetDataRow(i) == row)
return i;
return DevExpress.XtraGrid.GridControl.InvalidRowHandle;
}
'IT > Component' 카테고리의 다른 글
[Devexpresss] Grid Footer 영역 customizing 샘플 (0) | 2012.09.12 |
---|---|
[Farpoint Spread] Excel 저장시 버그? (0) | 2010.12.08 |
[DevExpress] DisableThreadingProblemsDetection 문제 (0) | 2009.01.23 |
[DevExpress] Grid 의 특정 Row Handle 과 Grid DataSource 의 Index (0) | 2008.09.02 |
[DevExpress] Grid 에서 그룹Row 를 제외한 Row Handle List 받아오기 (0) | 2008.08.29 |