1. initGrid() 에서는 동적이지 않은 컬럼에 ComboBox 설정하는 경우.
2. paraGrid_CellClick 은 ComboBox가 동적으로 변경이 필요한 경우.
// 초기화
private void initGrid() {
// 컬럼을 자동생성하지 않기 위해 설정.
grid.ActiveSheet.AutoGenerateColumns = false;
// ComboBox 적용을 위해서 false 설정. 풀면, ComboBox 적용이 안되고, Text로 작동함.
grid.ActiveSheet.DataAutoCellTypes = false;
// add 컬럼
// 중략
// 컬럼중에 콤보셀 설정
ComboBoxCellType sumtyp = new ComboBoxCellType {
Items = (from DataRow row in _SumTypDT.Rows select row["ITEM_CD"].ToString()).ToArray()
};
grid.ActiveSheet.Columns[2].CellType = sumtyp;
}
// 셀선택 시 콤보박스를 동적을 변경함.
private void paraGrid_CellClick(object sender, CellClickEventArgs e)
{
if (e.Column == 1 && e.View.Owner.DataSource != null) // AnalType 설정
{
DataTable dataTable = (DataTable) e.View.Owner.DataSource;
DataRow row = dataTable.Rows[e.Row];
string grp1 = Convert.ToString(row["컬럼A"]);
ComboBoxCellType sumtyp = null;
if ("값A".Equals(grp1))
{
sumtyp = new ComboBoxCellType {
Items = (from DataRow dr in _AnalTypDT.Rows where dr.Field<string>("ITEM_CD") == "LOT" select dr["ITEM_CD"].ToString()).ToArray()
};
}
else
{
sumtyp = new ComboBoxCellType {
Items = (from DataRow dr in _AnalTypDT.Rows select dr["ITEM_CD"].ToString()).ToArray()
};
}
e.View.Owner.ActiveSheet.Cells[e.Row, e.Column].CellType = sumtyp;
}
}
end.
728x90
'Programming Language > C#' 카테고리의 다른 글
C#, TeeChart에 ToolTip 표시하기 (0) | 2021.04.01 |
---|---|
offline .net 3.5 설치 (0) | 2020.07.30 |
[grapecity/farpoint] fix spread column size (0) | 2020.07.08 |
spread 에서 sheet 복사 (0) | 2020.06.18 |
DataTable의 DataRow값을 빠르게 변경하기. (0) | 2020.06.05 |