Sunmoon_BIT/.NET

Validation Control <유효성 검사 컨트롤>

와앙노 2010. 4. 19. 15:29

유효성 검사 컨트롤        Sunmoonbit 19th 황성노

 

기존의 웹 프로그래밍에 있어서 개발자에 부담이 되었던 작업 중의 하나는 사용자가 입력한 데이터가 유효한지를 검사하는 일이다. 페이지 내에서 입력 받는 내용이 많으면 많을수록 작성해야 할 코드량은 기하급수적으로 늘어났다.

하지만 ASP.NET의 웹 폼에서는 유효성 검사 컨트롤을 웹 폼에 추가함으로써 이러한 작업을 쉽고 간단하게 해결할 수 있다. 웹 폼에 추가된 유효성 검사 컨트롤은 입력에 관련된 서버 컨트롤과 연동되어서 값을 참조한다. 사용자가 값을 입력한 후 폼이 서버로 전송되면 ASP.NET페이지 프레임워크는 사용자가 입력한 값을 체크한 뒤에 해당 페이지의 유효성을 결정한다.

 

웹 폼에서 제공하는 유효성 검사 컨트롤은 다음과 같다.

구분

컨트롤

기능

필수 입력

RequiredFieldValidator

필수적으로 입력해야 할 항목의 값 체크

입력 값의 비교

CompareValidator

사용자가 입력한 값과 다른 컨트롤의 값을 비교

연산(이상,이하,같음)

데이터베이스에 저장된 값과의 비교도 가능

범위 체크

RangeValidator

사용자가 입력한 값이 특정 범위 내의 값인지 체크

수나,문자열,날짜의 범위를 체크할 수 있다.

입력할 범위는 상수뿐만 아니라 다른 컨트롤에서 추출한

값으로도 체크할 수 있다

패턴 일치

RegularExpressionValidator

일정한 표현 식에 의해 정의된 패턴과 사용자가 입력한 값이

일치하는지 체크

()메일주소,전화번호,우편번호

사용자 정의

CustomValidator

개발자가 만든 유효성 검사 로직으로 사용자의 입력 값을

체크한다.

유효성 검사 결과

ValidationSummery

유효성 검사 컨트롤에 의해서 체크한 결과를 모아서 출력하는

역할

 

 

유효성 검사 컨트롤 프로퍼티는 다음과 같다

Property

기능

Page.IsValid

현재 페이지에서 수행한 유효성 검사의 결과를 값으로 저장

DiaplayMode

ValidationSummary컨트롤의 메시지를 페이지에 표시할 열거방법을 지정

(List / BulletList / SingleParagraph)

ShowMessageBox

수집된 오류 정보를 메시지 박스를 통해서 보여준다

 

자세한 사용법은 예제를 통해서 익혀보도록 한다.

  

<실습> 회원가입 페이지 만들기

각 컨트롤에 적용된 유효성 검사 컨트롤과 설명

이름

-       적용컨트롤 : Required Validation

-       대상 : NameTextBox

-       ErrorMessage : 이름이 입력되지 않았습니다.

-       Text : *

-       InitialValue :

InitialValue가 공백으로 설정되어있으므로 텍스트박스 안이 공백일 때 에러메시지가 출력된다. Text는 해당 컨트롤의 위치에 표시되는 텍스트이며 ErrorMessage는 에러메시지를 모아서 출력해주는 ValidationSummary의 컨트롤에 표시되는 내용이다.

나이

-       적용컨트롤 : Range Validator

-       대상 : AgeTextBox

-       ErrorMessage : 범위내의 나이를 입력해 주세요.

-       MaximumValue : 100

-       MinimumValue : 1

-       Text : *

-       Type : Integer

    RangeValiator는 대상컨트롤에 미리 정한 범위의 값이 아니면 에러메시지가 출력된다.

    현재 예제에서는 Integer타입의 1에서 100사이의 수가 아니면 에러메시지를 출력한다.

비밀번호

-       적용컨트롤 : Required Validation

-       대상 : PWTextBox

-       ErrorMessage : 비밀번호가 입력되지 않았습니다.

-       Text : *

InitialValue가 공백이므로 공백일 때 에러메시지가 출력된다.

확인

-       적용컨트롤 : CompareValidator

-       대상 : ControlToCompare : PWTextBox / ControlToValiate : PW2TextBox

-       ErrorMessage : 두 개의 비밀번호가 다릅니다

-       Operator : Equal.

-       Text : *

-       Type : String

    CompareValidator를 사용해 두 대상의 값을 비교한다. 예제에서는 PWTextBox PW2TextBox를 대상으로 지정하여 ControlToValidator값이 ControlToCompare과 비교하게 된다. Operator Equal(같음),NotEqual(같지않음),GreaterThan(크다), GreaterThanEqual(크거나 같다),LessThan(작다),LessThanEqual(작거나 같다),DataTypeCheck(같은자료형일 때) 가 있으며 만족할 때 True가 된다. Type String으로 문자열로 비교하고 있다.

주소

-       적용컨트롤 : Required Validation

-       대상 : AddTextBox

-       ErrorMessage : 주소가 입력되지 않았습니다.

-       Text : *

InitialValue가 공백이므로 공백일 때 에러메세지가 출력된다.

TEL

-       적용컨트롤 : RegularExpressionValidator

-       대상 : TelTextBox

-       ErrorMessage : 전화번호 형식에 맞지 않습니다

-       Validation Expression : 01\d{1}-\d{3,4}-\d{4}

-       Text : *

RegualrExpressionValidator는 일정한 표현 식을 만들고 그 표현 식과 일치하면 True 일치하지 않으면 False이다. Validation Expression이 표현 식을 입력하는 속성인데 기본적으로 E메일이나 우편번호를 제공하지만 사용자가 여러 가지 표현 식을 만들 수 있다. 현재 예제에서는 한국의 휴대폰번호를 만족하는 표현 식을 입력했다.

http://regexlib.com 사이트에는 많은 양의 표현식이 올라 와 있다.

직업

-       적용컨트롤 : Required Validation

-       대상 : JobDropDownList

-       ErrorMessage : 직업을 선택해주세요.

-       Text : *

-       InitialValue : (선택)

InitialValue(선택)이므로 드롭다운리스트의 값이 (선택)일 때 에러메시지가 출력된다.

드롭다운리스트의 초기값을 (선택)으로 지정해 주면 페이지를 처음으로 접속하면 초기값이 적용되어 있으므로 (선택)상태일 때는 값을 선택하지 않은 것으로 간주한다

Summary

-       적용컨트롤 : Validation Summary

-       Display Mode : Bullet List

-       ShowMessageBox : True

Validation Summary는 해당 페이지의 Validation False인 것을모아서 ErrorMessage를 모두 출력해 준다. DisplayMode BulletList(점과 에러메세지를 한줄씩 출력),List(에러메세지를 한줄씩 출력),SingleParagraph(한줄로 에러메세지를 출력)이 있으며 ShowMessageBox True일 때 에러메세지를 모아서 메시지박으로 보여준다

버튼

if (Page.IsValid)

        {

            Label7.Text = "모든 조건을 만족합니다";

   }

Page.IsValid는 페이지 안의 Validator가 모두 True일 때 True를 반환한다.

이 페이지가 모두 유효하다면 Label7모든 조건을 만족합니다로 변경시키고 있다

라벨

-       Text : 가입신청 중