! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

스프레드 > Q&A | 토론

본문 바로가기

Spread.NET

Q&A | 토론

WinForms윈폼 스프레드

페이지 정보

작성자 정재원 작성일 2023-08-14 23:26 조회 244회 댓글 0건
제품 버전 : spread 10
컨트롤 이름 : spread

본문

스프레드 첫번째 컬럼을 FarPoint.Win.Spread.CellType.CheckBoxCellType 체크셀타입을 잡고서

mssql 에서 데이터를 
 

SELECT

CONVERT(BIT, CASE WHEN (컬럼명 IS NULL) THEN 'False' ELSE 'True' END) AS SVR 

FROM 테이블 


결과를 datatable 로 받아서


FarPoint.Win.Spread.SheetView sheetView = this.fpService.Sheets[0]; for (int i = 0; i < datatable명.Columns.Count; ++i) sheetView.Columns[i].DataField = datatable명.Columns[i].ColumnName; sheetView.DataSource = (object)datatable명; datatable명.Dispose();
 

이렇게 바인딩을 하면 첫번째 컬럼의 체크 기능이 조회된 내용으로 체크표시는 잘되는데 체크를 수정을 할려면 동작이 안됩니다.


                for (int i = 0; i < datatable명.Rows.count; i++)

                {

                    DataRow objR = objTbl2.Rows[i];


                    this.fpService.Sheets[0].Cells[i, 0].Value = Convert.ToBoolean(objR[0]);


                }

 이렇게 수동 값만 전달하면 적용도 잘되고 이후 체크박스 수정도 됩니다.


바인딩시 작동이 되게 할려면 무엇을 해야 할까요?

쿼리에서 나오는 데이터타입의 문제 일것 같은데?

  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

1 답변

WinForms윈폼 Re: 스프레드

추천0 이 글을 추천하셨습니다 비추천0

페이지 정보

작성자 GCK써니 작성일 2023-08-17 09:42 댓글 0건

본문

정재원 님, 안녕하세요.

그레이프시티입니다.


DataTable의 첫번째 필드에 true/false로 된 값을 설정하고, 전달해주신 소스코드를 사용하여 데이터를 바인딩했을 때, 체크박스 셀 값이 정상적으로 수정되는 것으로 확인됩니다.

따라서, 말씀하신 것처럼 쿼리 후 데이터를 가지고 올 때 반환되는 데이터 타입의 영향으로 보여집니다.

저희쪽에서 테스트한 샘플 코드를 전달드리오니, 참고하여 주시기 바랍니다.


FarPoint.Win.Spread.CellType.CheckBoxCellType check = new FarPoint.Win.Spread.CellType.CheckBoxCellType();
check.ThreeState = false;
fpSpread1.Sheets[0].Columns[0].CellType = check;

DataTable dt = new DataTable();
dt.Columns.Add("Check", typeof(bool));
dt.Columns.Add("Text", typeof(string));
dt.Rows.Add(true, "사과");
dt.Rows.Add(false, "딸기");
dt.Rows.Add(true, "포도");
dt.Rows.Add(false, "배");
dt.Rows.Add(true, "메론");

FarPoint.Win.Spread.SheetView sheetView = this.fpSpread1.Sheets[0];
for (int i = 0; i < dt.Columns.Count; ++i)
{
    sheetView.Columns[i].DataField = dt.Columns[i].ColumnName;
}

sheetView.DataSource = (object)dt;
dt.Dispose();


감사합니다.

그레이프시티 드림

 

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.