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

데이터 유효성 검사 - WinForms FlexGrid > 블로그 & Tips

본문 바로가기

ComponentOne

블로그 & Tips

데이터 유효성 검사 - WinForms FlexGrid

페이지 정보

작성자 GrapeCity 작성일 2020-07-23 00:00 조회 6,531회 댓글 0건

본문

첨부파일

어떤 비즈니스 응용 프로그램에서든 사용자 입력의 유효성을 검사하는 것은 필수적이고 의무적인 작업입니다. 이를 위해 WinForms용 ComponentOne FlexGrid는 셀 수준의 향상된 데이터 유효성 검사를 위한 두 가지 기술을 제공합니다.


데이터 주석을 사용한 유효성 검사

데이터 주석은 유효성 검사 규칙, 데이터가 표시되는 방식을 지정하고 클래스 간 관계를 설정하는 클래스 또는 클래스 구성원에게 적용되는 특성입니다.

System.ComponentModel.DataAnnotations 네임스페이스에는 데이터 특성으로 사용된 클래스가 포함됩니다. 이러한 특성을 데이터 클래스 또는 구성원에게 적용하여 데이터 정의를 중앙에서 처리하면 동일한 규칙을 여러 위치에서 다시 적용할 필요가 없습니다.

C1FlexGrid v1은 데이터 주석의 특성을 정의하면서 코드를 통해 데이터 개체를 만듭니다. 이렇게 하면 C1Flexgrid는 각 셀에 대한 사용자 입력의 유효성을 검사하는 데이터 주석을 지원할 수 있게 됩니다.

그리드는 이러한 특성을 인지하고 각 해당 열에 규칙을 자동으로 적용합니다. 다음은 C1FlexGrid에서 지원되는 주석 특성입니다.

특성 이름FlexGrid에서의 기능
Association엔터티의 구성원이 외래 키 관계와 같은 데이터 관계를 나타내도록 지정합니다.
Display엔터티 부분 클래스의 유형 및 구성원에 대해 현지화 가능한 문자열을 지정할 수 있도록 하는 범용 특성을 제공합니다.
DisplayFormat데이터 필드가 표시되고 서식 지정되는 방식을 지정합니다.
DisplayColumn참조된 테이블 내에서 외래 키 열로 표시되는 열을 지정합니다.
Editable데이터 필드를 편집할 수 있는지 여부를 나타냅니다.
Key엔터티를 고유하게 식별하는 하나 이상의 속성을 의미합니다.
Validation RequiredAttribute StringLengthAttribute RangeAttribute RegularExpressionAttribute MinLengthAttribute MetaDataAttribute MaxLengthAttribute EmailAddressAttribute CompareAttribute DataTypeAttribute데이터 주석 유효성 검사 특성은 FlexGrid 연산에서 유효성 검사 규칙으로 사용됩니다.


한 가지 예를 살펴보겠습니다.

조직의 직원 목록에 이름, 이메일, 연령, 연락처 등의 공통 필드가 있습니다. 모든 필드에는 통과 기준 집합이 있으며, 데이터 주석은 입력의 유효성을 검사합니다.

WinForms용 FlexGrid에서의 데이터 유효성 검사


그리드에서 데이터 주석 구현

위 예제에 대한 데이터 주석을 구현하려면 각 직원에 대해 다음 속성을 포함한 EmployeeData라는 클래스를 만듭니다.

class EmployeeData
{
public string EmployeeName {get; set;} public UInt32 Age {get; set;}
public string EmployeeEmail {get; set;} public string Contact {get; set;}
}

 

클래스가 생성되면 다음 단계를 수행합니다.

  1. 각 속성에 대한 메타데이터 태그를 추가하여 유효성 검사 적용

  2. EmployeeName, Age 및 EmployeeEmail 속성에 데이터 주석 특성 적용

  3. EmployeeName 속성의 표시 이름을 그리드 열의 캡션으로 반영되는 “Name”으로 변경

  4. “yrs.”가 해당 값 뒤에 오는 접미사로 표시되도록 Age의 서식을 설정

  5. EmployeeEmail 속성의 표시 이름을 “Email”로 변경하고 그것이 필수 속성인지 그리고 비워둘 수 없는지 유효성 검사

    [Display (Name = "Name")]
    public string EmployeeName {get; set;}
    ​
    [DisplayFormat (DataFormatString = "0 yrs.")] public UInt32 Age {get; set;}
    ​
    [Display (Name = "Email")]
    [Required (Error Message = "Email ID is Required")] public string EmployeeEmail {get; set;}
    ​

클래스에서 이러한 속성의 특성을 정의한 후 EmployeeData 개체 목록을 만듭니다. 이 목록을 레코드를 표시하기 위한 그리드의 DataSource로 설정합니다.

WinForms용 FlexGrid에서의 데이터 유효성 검사

이제 코드를 통해 데이터 개체를 생성하는 동안 입력에 대한 유효성이 검사됩니다. 클래스 개체를 통해 데이터 소스를 설정할 필요가 없는 경우 FlexGrid는 EditorValidation이라는 새 속성을 제공합니다.


EditorValidation 속성을 사용한 유효성 검사

C1FlexGrid v1에는 EditorValidation이라는 column-level 속성이 포함됩니다. 이 속성은 그리드의 열에 적용할 때 데이터 평가를 개선하는 유효성 검사 규칙으로 이루어집니다.

주석이 사용되면 EditorValidation 속성으로 해석됩니다. 주석이 사용되지 않으면 그리드에서의 유효성 검사는 EditorValidation 속성을 사용하는 열에 적용될 수 있습니다.

아래에서는 EditorValidation 속성을 사용하여 앞에서 논의한 규칙을 적용하고 2개의 열에 대해 유효성 검사를 수행합니다.

EmployeeName 열에 대해서는 다음 규칙을 적용합니다.

  1. RequiredRule: 필드를 비워둘 수 없습니다.

  2. StringLengthRule: 입력의 최소 길이를 특정 값으로 설정합니다.

마찬가지로 RangeRule을 사용하여 Age 열에 대해 유효성 검사를 수행합니다.

var Name = c1FlexGrid1.Cols["EmployeeName"]; Name.EditorValidation.Add(new RequiredRule()); Name.EditorValidation.Add(new StringLengthRule()
{
MinimumLength = 5
});
​
var Age = c1FlexGrid1.Cols["Age"]; Age.EditorValidation.Add(new RequiredRule()); Age.EditorValidation. Add(new RangeRule()
{
Minimum = 18,
Maximum = 50
});


WinForms용 FlexGrid에서의 데이터 유효성 검사

여기서는 FlexGrid 컨트롤에서의 데이터 유효성 검사에 대해 자세히 설명했습니다.


샘플이 여기에 첨부되어 있습니다. 샘플 코드를 활용하여 다양한 시도를 해볼 실 수 있었으면 합니다.

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

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

태그1

인기글

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