[C1FlexGrid] 이미지로 버튼 흉내내기
기타2011. 11. 15. 13:14
ComponentOne의 FlexGrid에서 Cell에 이미지 버튼을 표현하는 방법
아래의 방법은 일종의 이미지 버튼을 흉내내는 방법이다.
//이벤트 핸들러 추가 grdMain.MouseMove += new MouseEventHandler(grdMain_MouseMove); grdMain.MouseDown += new MouseEventHandler(grdMain_MouseDown); //커서 변경 private void grdMain_MouseMove(object sender, MouseEventArgs e) { if (grdMain.MouseRow > 0) { if (grdMain.MouseCol == grdMain.Cols["ViewInfo"].Index) this.Cursor = Cursors.Hand; else this.Cursor = Cursors.Default; } } //마우스 클릭 private void grdMain_MouseDown(object sender, MouseEventArgs e) { if (grdMain.MouseRow > 0) { if (grdMain.MouseCol == grdMain.Cols["ViewInfo"].Index) { Row row = grdMain.Rows[grdMain.MouseRow]; string seqNo = row["SeqNo"].ToString(); ViewInfo(seqNo); } } } //그리드 바인딩 후 아래와 같은 방법으로 이미지를 표시한다. //전체 Row에 같은 이미지를 표시하고자 할 경우 아래와 같이 구현한다. private void LoadCellImage() { Hashtable ht = new Hashtable(); ht.Add("", 특정 이미지); Column LinkCol = grdMain.Cols["ViewInfo"]; LinkCol.ImageMap = ht; LinkCol.ImageAndText = false; LinkCol.ImageAlign = ImageAlignEnum.CenterCenter; } //해당 Row의 상태에 따라 다른 이미지를 표시하려면 아래의 메소드처럼 구현한다. private void LoadCellImage() { Hashtable ht = new Hashtable(); //그리드 제목이 있을 경우 grdMain.Rows.Fixed부터 처리 for (int i = grdMain.Rows.Fixed; i < grdMain.Rows.Count; i++) { Row row = grdMain.Rows[i]; if (row["Exist"].ToString() == "Y") { ht.Add(row["SeqNo"].ToString(), 특정 이미지1); } else { ht.Add(row["SeqNo"].ToString(), 특정 이미지2); } } Column LinkCol = grdMain.Cols["SeqNo"]; LinkCol.ImageMap = ht; LinkCol.ImageAndText = false; LinkCol.ImageAlign = ImageAlignEnum.CenterCenter; }
'기타' 카테고리의 다른 글
[마이플랫폼] Base64 문자열을 이미지 컴포넌트에 표시하기 (0) | 2018.04.26 |
---|---|
Web API CORS 관련 문제 해결(개발 시) (0) | 2017.12.22 |
[UbiReport] 그룹별 제목과 다단 보고서 (0) | 2016.05.11 |
Alfresco 웹스크립트를 이용한 사이트 생성 (0) | 2015.07.21 |
Alfresco Share Login 페이지에서 CSRF 필터 오류 해결법 2가지 (0) | 2015.07.21 |