티스토리 뷰
반응형
그리드뷰에서 자동크기 설정
DevExpress GridView에서 칼럼의 크기를 자동으로 조절되도록할 수 있다. 기본으로 칼럼을 생성하면 width=75 사이즈로 되어있는데 실제 컴파일해보면 크기는 반영되지 않는다.
그 이유는 기본적으로 gridview의 OptionsView -> ColumnAutoWidth = true 옵션으로 되어있기 때문이다.
true로 되어있는 경우 칼럼별 width 사이즈는 무시하고 Layout에서 설정해놓은 칼럼의 사이즈 비율에 따라서 화면에 출력된다. 현재 Layout에서 아이디 칼럼의 비율이 15% 정도 된다면, 컴파일 후 화면에 출력되는 그리드 전체 사이즈 중 15% 비율로 아이디 칼럼이 출력된다. 그리드뷰 사이즈가 줄면 칼럼 사이즈도 줄고 그리드 사이즈가 커지면 칼럼 사이즈도 커진다.
칼럼의 사이즈를 칼럼에 출력되는 문자 중 가장 긴 문자의 길이만큼 자동으로 크기 조절하기 위해서는 ColumnAutoWidth=false로 변경하고 GridControl.DataSource에 데이터 바인딩 후 GridView.BestFitColumns() 옵션을 추가하면 된다.
데이터 바인딩 후 gridview에 BestFitColumns 옵션 추가
DataTable gridInfo = new DataTable();
gridInfo.Columns.Add("id");
gridInfo.Columns.Add("name");
gridInfo.Columns.Add("addr");
gridInfo.Rows.Add();
gridInfo.Rows[gridInfo.Rows.Count - 1]["id"] = "1";
gridInfo.Rows[gridInfo.Rows.Count - 1]["name"] = "홍길동";
gridInfo.Rows[gridInfo.Rows.Count - 1]["addr"] = "경기도 수원시 한국동";
gridInfo.Rows.Add();
gridInfo.Rows[gridInfo.Rows.Count - 1]["id"] = "2";
gridInfo.Rows[gridInfo.Rows.Count - 1]["name"] = "뽀로로";
gridInfo.Rows[gridInfo.Rows.Count - 1]["addr"] = "경기도 안양시 한국동";
gridInfo.Rows.Add();
gridInfo.Rows[gridInfo.Rows.Count - 1]["id"] = "3";
gridInfo.Rows[gridInfo.Rows.Count - 1]["name"] = "워랜버핏";
gridInfo.Rows[gridInfo.Rows.Count - 1]["addr"] = "서울시 강남구 부자동";
gridInfo.Rows.Add();
gridInfo.Rows[gridInfo.Rows.Count - 1]["id"] = "4";
gridInfo.Rows[gridInfo.Rows.Count - 1]["name"] = "손흥민";
gridInfo.Rows[gridInfo.Rows.Count - 1]["addr"] = "서울시 강남구 부자동 토트넘아파트";
gridInfo.Rows.Add();
gridInfo.Rows[gridInfo.Rows.Count - 1]["id"] = "5";
gridInfo.Rows[gridInfo.Rows.Count - 1]["name"] = "홍명보";
gridInfo.Rows[gridInfo.Rows.Count - 1]["addr"] = "서울시 강남구 부자동 축구아파트";
gridInfo.Rows.Add();
gridInfo.Rows[gridInfo.Rows.Count - 1]["id"] = "6";
gridInfo.Rows[gridInfo.Rows.Count - 1]["name"] = "박지성";
gridInfo.Rows[gridInfo.Rows.Count - 1]["addr"] = "서울시 강남구 부자동 유럽아파트";
gridInfo.Rows.Add();
gridInfo.Rows[gridInfo.Rows.Count - 1]["id"] = "7";
gridInfo.Rows[gridInfo.Rows.Count - 1]["name"] = "차두리";
gridInfo.Rows[gridInfo.Rows.Count - 1]["addr"] = "서울시 강남구 부자동 독일아파트";
gridControl1.DataSource = gridInfo.Copy();
gridView1.BestFitColumns(); // cell 에서 가장 길이가 긴 문자 기준으로 width 크기 자동 변경
칼럼별로 가장 길이가 긴 문자에 맞춰서 칼럼 사이즈가 자동으로 조절된다. 하지만 데이터가 많아질 경우 셀별로 하나씩 가장 큰 크기를 측정해서 칼럼 사이즈를 조절하기 때문에 데이터 바인딩 시간이 오래 걸리니 사용을 추천하지는 않는다.
반응형
'프로그래밍 > 윈도우개발' 카테고리의 다른 글
C# string 복수 문자로 split 하는 방법 (0) | 2023.03.04 |
---|---|
DevExpress Gridview 칼럼 필터 추가 (0) | 2023.02.19 |
DevExpress 컨트롤 자동 정렬 (0) | 2023.02.19 |
C# 날짜 차이 구하기 (0) | 2023.02.18 |
C# 특정 자릿수 문자 추가 (0) | 2023.02.18 |
댓글
공지사항