2016. 3. 21. 18:22ㆍprogramming/c#
flexgrid 뷰를 이용하여 데이터 바인딩 및 출력할 경우
새로 고침 역할을 하는 DATA ALL CLEAR or RESET 이 필요합니다.
저는 아래와 같은 방법으로 해결했습니다.
Navigator를 사용안한 경우에
int Rows = FlexGridView.Rows.Count - 1;
FlexGridView.Rows.RemoveRange(1, Rows);
해당 그리드뷰의 Rows를 변수로 저장합니다. 이때 -1을 해주는 이유는
Cloumn Header를 1개 있는 경우로 인식하기 때문에 -1 합니다.
RemoveRange로 1부터 Rows 까지범위 삭제하여 데이터를 올클리어 합니다.
두번째 방법은
Navigator를 사용하여 페이징 한 경우
위와 같은 RemoveRange를 이용하면 오류가 납니다.
아래는 navigator 에 페이징 하는 로직과 데이터 리셋하는 로직이 함께 있습니다.
Flexgrid뷰에선 Remove() 하면 해당 Rows 가 한 행씩 지워지면서 다시 데이터가 위로 정렬됩니다.
예 )
1 A
2 B
3 C
Flexgrid.Rows.Remove(0); 하는 경우
1 행에 A 가 지워지면서
1행자리에 B가 올라가고 , 2행 자리에 C가 자리하게 됩니다.
따라서 i로 변수 넘겨주면 안되고
고정값을 지정해야 합니다.
Column Header를 놔두고 지우려면 0이 아닌 1로 지정해야 합니다.
grid.Rows.Remove(1);
'programming > c#' 카테고리의 다른 글
접근제한자 private protected public... (0) | 2016.04.04 |
---|---|
ref, out 매개변수 한정자 차이 (0) | 2016.04.04 |
[C#] Windows Form 윈폼 사이즈 변경 시 내부 컨트롤 위치 자동 조정 (1) | 2016.02.12 |
[Windows Form] 사용자 정의 컨트롤 (0) | 2016.01.22 |
[C#] 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. (0) | 2016.01.11 |