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

C1FlexGrid 텍스트를 숫자형으로... <-- 다시 올립니다 > Q&A | 토론

본문 바로가기

ComponentOne

Q&A | 토론

WinForms윈폼 C1FlexGrid 텍스트를 숫자형으로... <-- 다시 올립니다

페이지 정보

작성자 트라팔가 작성일 2021-02-10 19:17 조회 4,400회 댓글 0건
제품 버전 : 4.0
컨트롤 이름 : C1.Win.FlexGrid

본문


983155747a900afd8a22fe246a45d77b_1612951879_9535.png
 

위 그림의 왼쪽 그리드를 Sort 하면

오른쪽 그리드처럼 나올 때

숫자로 정렬되서 나오게 할 수 있는 방법은 없나요?  


C1FlextGrid1.Cols(1).DataType = GetType(Int32)


이렇게 해도 결과가 바뀌지 않네요 


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

댓글목록

등록된 댓글이 없습니다.

2 답변

WinForms윈폼 Re: C1FlexGrid 텍스트를 숫자형으로... <-- 다시 올립니다

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

페이지 정보

작성자 하늘을날자 작성일 2021-02-13 11:38 댓글 2건

본문

첨부파일

사용하신 예제 코드라도 올려주시면 좋을 것 같습니다.

이해하기에 따라 형 변환 질문인지 다른 의도의 질문인지 오해를 일으킬 수 있을 것 같습니다.


그레이프시티 포럼에 도움이 될 만한 내용이 있었습니다. (링크 참조)

https://www.grapecity.com/forums/winforms-edition/setting-column-data-type-f 


제가 테스트 한 코드는 [테스트 코드]와 같습니다.

(사용하신 코드를 모르기에 질문자님의 의도는 무엇인지 추측만 해봅니다.)


[테스트 방법]

텍스트 파일을 LoadGrid 메서드를 이용하여 그리드에 로드합니다.

(사전에 테스트 할 텍스트 파일에는 10개의 값을 넣어 두었습니다.)


1) 닷넷프레임워크: 4.5.2

2) 컨트롤: 2018 v2

3) test.txt 파일을 LoadGrid로 값을 가져온다

4) Sort 메서드로 정렬을 시도한다.


[test.txt]

11

10

112

113

1000

115

1

2

3

10000


[테스트 코드]

c1FlexGrid1.Cols[1].Caption = c1FlexGrid1.Cols[1].Name = "정렬 테스트";
c1FlexGrid1.Cols[1].DataType = typeof(Int32); 
// vb의 경우 c1FlexGrid1.Cols(1).DataType = GetType(Int32)

c1FlexGrid1.Rows.Count = 10;
//c1FlexGrid1.Cols.Count = 2;

OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.DefaultExt = "txt";

 if (openFileDialog.ShowDialog() == DialogResult.OK) {
      c1FlexGrid1.DataSource = null;
      c1FlexGrid1.LoadGrid(openFileDialog.FileName, FileFormatEnum.TextCustom, FileFlags.None, Encoding.UTF8);               
      c1FlexGrid1.Sort(SortFlags.Ascending, 1);              
}

위 코드중에서 
c1FlexGrid1.Cols[1].DataType = typeof(Int32); 
이 라인을 삭제하고 테스트 해보면 정렬이 되지 않는 것을 확인할 수 있었습니다.

[DataType 미설정 상태에서 실행]
5a2d77bc6e0afc51bc5b62a01f92c602_1613212039_0344.PNG
 

첨부한 테스트 동영상을 참고하십시오.

댓글목록

트라팔가님의 댓글

트라팔가 작성일

감사합니다 문제해결에 많은 도움이 되었습니다

하늘을날자님의 댓글의 댓글

하늘을날자 작성일

도움이 되었다니 다행입니다. 즐거운 프로그래밍 되십시오.^^

WinForms윈폼 Re: C1FlexGrid 텍스트를 숫자형으로... <-- 다시 올립니다

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

페이지 정보

작성자 GCK폴 작성일 2021-02-15 15:46 댓글 1건

본문

첨부파일

안녕하세요 그레이프시티입니다.


저희 회원님께서 상세한 답변을 달아 주셨네요.

진심으로 감사드립니다.


그런데 혹시나 그러한 방법으로 이미 해보셨음에도 동작을 하지 않는다면 

어쩌면 현재 컬럼 데이터는 DB와 바인딩 되어 있는 상태는 아니신지요?

만일 그렇다면 현재 본 내용은 읽기 전용이 되어 기본적으로 유형을 설정하는 것이 불가능한 상태가 됩니다.

그렇기 때문에 해당 컬럼을 숫자로 사용하고 싶으시다면 DB에서나 또는 쿼리상에서 데이터 타입을 변환한 상태에서 그리드에 할당하는 것을 기본으로 합니다.

예를 들면 아래의 블로그에서 설명이 되어진 것과 같이 하실 수 있습니다. 

https://coding-factory.tistory.com/100 


그러나 어떠한 이유때문에 현실적으로 이와 같은 방법을 쓰실수 있다면 남은것은

따로 가상 데이터 테이블을 만드시고 거기에 데이터를 세팅한 다음 다시 복사해서 옮겨가시는 방법이 있을것 같습니다.  

예를 들면 아래의 StackOverflow글을 참고해 주시기 바랍니다.

https://stackoverflow.com/questions/9028029/how-to-change-datatype-of-a-datacolumn-in-a-datatable 


여기에서는 실제 Grid에 먼저 바인딩을 한 상태에서 가상 테이블로 옮겨 오지만

반대로 가상 테이블에 바인딩을 하시고 C1 FlexGrid에 옮겨가는 형태로 사용해 보시면 될것 같습니다.


추가적인 문의 사항이 있으시면 언제든 알려 주시기 바랍니다.

감사합니다.

그레이프시티 드림

댓글목록

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