Validation Control <유효성 검사 컨트롤>
유효성 검사 컨트롤 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 : 가입신청 중 |