반응형

기존에 만들었던 WANIGrid의 전체적인 모습과 구조를 대대적으로 바꾸었다.

WANIGrid 스크롤 영역에 대한 처리와 전체 적인 모습들을 좀 더 개선하고자 했다.

추가로 헤더 그룹을 구성할 수 있도록 API를 추가했다.

WANIGrid를 사용하기 위해서는 프로그램 단에서 WANIGrid를 초기화 하는 작업이 필요하다.

초기화 메소드를 하나 만들어서 WANIGrid에 필요한 설정을 하도록 한다.

 

HeaderColumn의 ColumnId는 DataTable의 Column과 대응된다.

waniGridControl1.DataSource 값으로 DataTable을 할당하게 되면 ColumnId의 값과  동일한 DataTable의 필드  값이 WANIGrid 에 나타나게 된다.

 

현재는 셀 선택 시 편집 모드는 TextBox 형태만 지원하고 있다. 향 후 CheckBox, ComboBox, DatePicker 등을 지원할 예정이다.

private void InitializeGrid()
{
    //첫번째 헤드그룹 지정
    List<HeaderGroup> headerGroups0 = new List<HeaderGroup>()
    {
        new HeaderGroup() { StartColumnId = "Col02", NumberOfColumns = 4, TitleText = "Test Top 01" }
    };

    //두번째 헤드그룹 지정
    List<HeaderGroup> headerGroups = new List<HeaderGroup>()
    {
        new HeaderGroup() { StartColumnId = "Col02", NumberOfColumns = 2, TitleText = "Test 01" },
        new HeaderGroup() { StartColumnId = "Col04", NumberOfColumns = 2, TitleText = "Test 02" }
    };
    //헤드 지정
    List<HeaderColumn> headerCols = new List<HeaderColumn>()
    {
        new HeaderColumn() { ColumnId = "Col01", HeaderTitle = "Column 01", IsRowHeader = false, IsEdit = true, EditorType = EditControlType.TextBox, HeaderTitleAlign = HorizontalAlignment.Center, TextAlign = HorizontalAlignment.Left, Visible = true, Width = 100  },
        new HeaderColumn() { ColumnId = "Col02", HeaderTitle = "Column 02", IsRowHeader = false, IsEdit = true, EditorType = EditControlType.TextBox, HeaderTitleAlign = HorizontalAlignment.Center, TextAlign = HorizontalAlignment.Center, Visible = true, Width = 100  },
        new HeaderColumn() { ColumnId = "Col03", HeaderTitle = "Column 03", IsRowHeader = false, IsEdit = true, EditorType = EditControlType.TextBox, HeaderTitleAlign = HorizontalAlignment.Center, TextAlign = HorizontalAlignment.Left, Visible = true, Width = 200  },
        new HeaderColumn() { ColumnId = "Col04", HeaderTitle = "Column 04", IsRowHeader = false, IsEdit = true, EditorType = EditControlType.TextBox, HeaderTitleAlign = HorizontalAlignment.Center, TextAlign = HorizontalAlignment.Left, Visible = true, Width = 100  },
        new HeaderColumn() { ColumnId = "Col05", HeaderTitle = "Column 05", IsRowHeader = false, IsEdit = true, EditorType = EditControlType.TextBox, HeaderTitleAlign = HorizontalAlignment.Center, TextAlign = HorizontalAlignment.Left, Visible = true, Width = 200  },
        new HeaderColumn() { ColumnId = "Col06", HeaderTitle = "Column 06", IsRowHeader = false, IsEdit = true, EditorType = EditControlType.TextBox, HeaderTitleAlign = HorizontalAlignment.Center, TextAlign = HorizontalAlignment.Left, Visible = true, Width = 150  },
        new HeaderColumn() { ColumnId = "Col07", HeaderTitle = "Column 07", IsRowHeader = false, IsEdit = true, EditorType = EditControlType.TextBox, HeaderTitleAlign = HorizontalAlignment.Center, TextAlign = HorizontalAlignment.Left, Visible = true, Width = 200  }
    };

    //Header 정보 추가
    TopHeader header = new TopHeader(headerCols);
    //최상위 헤더 그룹 설정
    header.SetGroupHeaders(0, headerGroups0);
    //상위 헤더 그룹 설정
    header.SetGroupHeaders(headerGroups);
    //Header 정보 설정
    waniGridControl1.SetHeader(header);    
}

 

아래의 첨부 파일의 소스를 실행한 결과 화면

[그림 3-1] WANIGrid Control 사용 예제 1 - 셀 편집 시 화면
[그림 3-2] WANIGrid Control 사용 예제 2 - 한 개의 행 선택 시
[그림 3-2] WANIGrid Control 사용 예제 3 - 여러 개의 행 선택 시

 

[그림 3-2] WANIGrid Control 사용 예제 4 - 한 개의 컬럼 선택 시
[그림 3-2] WANIGrid Control 사용 예제 5 - 여러 개의 컬럼 선택 시

아래의 첨부한 소스를 참조

 

WANIGridControlExample.zip
0.21MB
WANIGrid.dll
0.05MB
WANIGrid_속성정리.pdf
0.09MB

반응형

+ Recent posts