C#/winform
[C#][WinForm][Dev]DataTable로 GridControl/GridView에 데이터 추가하기
ㅋㅋ!
2021. 6. 28. 17:44
**본 글은 DevExpress 컴포넌트를 이용한 경우에만 참고 할 수 있다.
테스트에 사용된 데이터
GridControl/GridView란?
WinForm 의 DataGridView 상위버전.
오름차순/내림차순만 지원되는 DataGridView에서
검색기능 / 필터기능 등을 추가로 사용 할 수 있다.
GridControl / GridView 차이?
GridControl : 출력해줄 데이터 소스를 바인딩 한다.
GridView : 화면에 데이터를 출력해준다.
조금 더 자세하고 명확하게 정의 하고 싶지만 그 정도만큼 잘 알고 있지 못하다.
GridControl = 데이터 / GridView = 화면출력 정도로만 생각해두고 써도 크게 무리는 없을 것 같다.
데이터 추가/바인딩 하기
기본적으로 DataGridView에 적용하는 방식과 동일하다.
데이터 테이블에 내용을 추가하고, 바인딩을 해보자.
private void CreateDataTable(DataTable dt)
{
dt.Columns.Add("Category");
dt.Columns.Add("Item");
dt.Columns.Add("Price");
dt.Columns.Add("Stock");
dt.Columns.Add("Location");
dt.Columns["Category"].Caption = "분류";
dt.Columns["Item"].Caption = "품목";
dt.Columns["Price"].Caption = "금액";
dt.Columns["Stock"].Caption = "재고";
dt.Columns["Location"].Caption = "위치";
dt.Rows.Add("과일", "사과", "2000", "20", "A-2");
dt.Rows.Add("과일", "바나나", "6000", "5", "A-5");
dt.Rows.Add("과일", "딸기", "2500000", "500", "A-1");
dt.Rows.Add("과일", "수박", "13000", "30", "A-3");
dt.Rows.Add("과일", "메론", "5000", "15", "A-6");
dt.Rows.Add("야채", "오이", "3000", "22", "B-1");
dt.Rows.Add("야채", "버섯", "2500", "90", "B-3");
dt.Rows.Add("야채", "토마토", "6000", "150", "B-5");
dt.Rows.Add("야채", "감자", "3000", "300", "B-2");
dt.Rows.Add("야채", "가지", "2000", "320", "B-9");
dt.Rows.Add("야채", "대파", "1500", "15", "B-4");
dt.Rows.Add("야채", "양파", "5000", "5", "B-8");
dt.Rows.Add("육류", "삼겹살", "15000", "0", "C-1");
dt.Rows.Add("육류", "목살", "18000", "800", "C-3");
dt.Rows.Add("육류", "항정살", "19600", "13", "C-2");
}
위의 DataTable을 아래 한줄로 바인딩한다.
gridControl1.DataSource = dt;
데이터 바인딩이 완료되면 컬럼을 드래그 앤 드랍하여 목록을 필터링 하여 나열 하거나, 우측상단의 돋보기 버튼으로
검색을 할 수 있다.
필드명(컬럼명) 변경하기
아래 두 가지 방법으로 필드명(컬럼명)을 변경 할 수 있다.
1. DataTable(DataSource)의 Caption 설정
dt.Columns["Category"].Caption = "분류";
2. GridView의 Caption 설정
gridView1.Columns["Category"].Caption = "분류";
※ 번외로 WinForm의 DataGridView는 아래 방법으로 필드명(컬럼명)을 변경한다.
(DataTable의 Caption은 적용되지 않는다.)
dataGridView1.Columns["Category"].HeaderText = "분류";
끝.