WANIGrid에 DataTable을 DataSource에 할당하는 방법에 대해서 알아보자.
보통 우리는 데이터베이스에서 쿼리를 통해서 우리가 원하는 데이터들을 DataTable에 담아서 가져오게 되고, 이렇게 가져온 데이터를 특정한 양식 또는 원하는 화면에 사용자에게 제공하게 된다.
WANIGrid 또한 이렇게 가져온 데이터인 DataTable를 할당함으로써 WANIGrid에 원하는 컬럼의 정보들을 모두 제공할 수 있게 된다.
첨부된 WANIGridExample 프로젝트의 WANIGridExample.cs파일을 열어서 GridInitialize() 메소드를 살펴보자. WANIGrid를 사용하기 위해서는 항상 WANIGrid의 Header Column을 정의하고 WANIGrid에서 보여주고자 하는 DataTable의 정보를 할당하면 된다.
GridInitialize 메소드의 내부를 하나씩 살펴보기로 하자.
HeaderColumn 클래스의 List를 선언하고 waniGrid.TopHeaderList.GetHeaderList() 메소드를 호출해서 빈 headerColumns List를 생성한다.
List<HeaderColumn> headerColumns = waniGrid.TopHeaderList.GetHeaderList();
List<HeaderColumn> headerColumns를 새로 생성한다. Index 값이 0이고 ColumnId가 “LeftHeader”인 빈 컬럼 1개만 생성됨. 이 후에 각 컬럼들을 추가한다.
HeaderColumn 클래스의 속성과 메소드를 잠깐 살펴보자.
속성(Property) |
get/set |
상세 |
public int Index |
get/set |
컬럼 인덱스 |
public string ColumnId |
get/set |
컬럼 ID. DataTable의 Column Name과 동일해야 함 |
public string Title |
get/set |
컬럼 헤더의 명칭. |
public int Left |
get/set |
컬럼의 Left 즉 시작하는 X좌표 값 |
public int Width |
get/set |
컬럼의 폭 |
public HorizontalAlignment HeadAlign |
get/set |
컬럼 헤더 명칭의 정렬 방법 |
public HorizontalAlignment TextAlign |
get/set |
컬럼 데이터의 정렬 위치. DataTable의 Row별 컬럼 ID에 해당하는 데이터 값을 의미 |
public bool Visible |
get/set |
화면에서 해당 컬럼을 화면에 Display 여부. true면 보여지고 false인 경우 숨겨짐. |
public bool Editable |
get/set |
컬럼의 데이터 편집 여부. true면 편집 가능 그렇지 않으면 편집 불가 |
public bool IsCalendar |
get/set |
컬럼이 날짜 정보를 가지고 있으면 true, 그렇지 않으면 false |
public ViewRange ViewRange |
get/set |
컬럼의 시작 X좌표와 끝 X좌표 값을 가지고 있는 ViewRange 타입. |
WANIGrid를 초기화 하는 방법은 Header 영역을 초기화하고, Header영역의 컬럼들을 정의하는 것으로 일차적인 초기화를 하게된다.
Header영역을 Clear하고 HeaderColumn 목록을 초기화한다.
List<HeaderColumn> headerColumns = waniGrid.TopHeaderList.GetHeaderList();
DataTable의 각 컬럼명과 ColumnId를 동일하게 부여하면 DataTable의 Column 값이 WANIGrid의 컬럼에 표시되게 된다.
headerColumns.Add(new HeaderColumn() { ColumnId = "Col01", Title = "Column 01", Width = 80, HeadAlign = HorizontalAlignment.Center, TextAlign = HorizontalAlignment.Left, Editable = true, Visible = true });
headerColumns List에 HeaderColumn을 추가하면서 컬럼들을 하나씩 설정해 나가면 된다.
- ColumnId – DataTable의 Column명과 동일하게 부여하면 DataTable의 Column 값을 할당하게 된다.
- Title – WANIGrid의 컬럼 헤더에 표시되는 텍스트
- Width – 컬럼의 폭을 지정한다.
- HeadAlign – 헤더의 표시되는 텍스트 정렬 방법
- TextAlign – Column 값의 정렬 방법
- Editable – 편집 여부
- Visible – 화면에 표시 여부
컬럼의 속성을 설정해서 headerColumns 리스트를 waniGrid 컨크롤에 할당한다.
waniGrid.TopHeaderList.SetHeaderList(headerColumns);
WANIGrid 컨트롤에 할당한 컬럼 정보들을 InitializeHeader 메소드를 호출해서 초기화한다.
waniGrid.InitializeHeader();
WANIGrid 컨트롤에 고정 컬럼의 개수를 지정할 경우 FixedCol 속성에 고정 컬럼의 개수를 지정한다. 기본 값은 0이다.
waniGrid.FixedCol = 0;
아래의 첨부 파일을 실행하면 하기와 같은 화면을 볼 수 있다.
고정컬럼 개수를 변화시켜 보라. 고정컬럼의 영역이 무엇을 의미하는지 확인할 수 있을 것이다.
고정컬럼 수정을 체크했을 때 고정컬럼 영역을 클릭해보라. 값을 입력할 수 있는 텍스트 입력 컨트롤이 활성화 될 것이다.
행간격을 높이거나 줄여보라. 행 높이의 기본 값은 20이다.
DataTable에서 Data 가져오기 버튼을 클릭해 보라. 내부적으로 DataTable을 생성해서 생성된 DataTable을 WANIGrid의 DataSource에 할당하면 아래의 같이 각 필드의 값이 DataTable의 값으로 채워지게 된다.
자세한 내용은 아래의 첨부된 소스를 참조해 보기 바란다.
'WinForm > WANIGrid 컨트롤 공개' 카테고리의 다른 글
WANIGrid Control 개선 - Mouse Wheel 처리 추가 (0) | 2021.04.13 |
---|---|
WANIGrid Control 개선 (0) | 2021.04.10 |
WANIGrid Control 사용법 1 (1) | 2020.04.30 |