ASP.NET 유효성 검사 컨트롤
- 포트폴리오 자료/기술문서
- 2016. 4. 17. 18:03
|
2016-G-3 |
|
보존기간 |
2020.04.17 |
|
보고일자 |
2016.04.17 |
|
작성자 |
조범희 |
ASP.NET(유효성 검사 컨트롤)
<기술문서>
31기 조범희
목차
1. 유효성 검사란?
2. 유효성 검사 컨트롤(Validation Control)
2.1 유효성 검사 컨트롤 정의
2.2 유효성 검사 컨트롤 종류
2.3 유효성 검사 컨트롤 사용 예제
1. 유효성 검사란?
l 오류 검증이나 표준 적합 검증을 위해 수행하는 검사 (Ex : 회원가입 시에 주민번호 입력, 입력하지 않을 시 오류 메시지 띄워준다.)
2. 유효성 검사 컨트롤
2.1 유효성 검사 컨트롤 정의
l 기존 웹 프로그래밍에 있어서 개발자에 부담이 되었던 작업 중 하나는 입력한 데이터가 유효한지를 검사하는 것이었습니다. 코드로서 페이지 내에 입력 받는 내용이 많으면 많을수록 코드 량은 기하급수적으로 늘어나는데 ASP.NET의 웹 폼에서는 유효성 검사 컨트롤을 추가함으로써 이러한 작업을 쉽고 간단하게 해결 할 수 있습니다.
2.2 유효성 검사 컨트롤 종류
▷RequireFieldValidator
-사용자가 데이터를 입력 하였는지 또는 어떤 선택을 하였는지 확인합니다. 만일 아무런 입력이 되지 않았으면 에러를 발생합니다.
Property |
기능 |
ControlValidate |
Validator가 영향을 미칠 컨트롤을 설정 |
Display |
화면에 언제, 어떻게 보여줄지 나타내는 부분 (None : 유효성 검사를 해서 오류가 나더라도 메시지는 출력이 되지 않는다. Static, Dinamic : 유효성 검사가 성공하면 오류 메시지는 나타나지 않고 실패하면 그때 메시지가 출력) ※현재 Asp.NET버전에서는 Static 과 Dinamic에 차이가 없다. |
ErrorMessage |
Validation Summary컨트롤에 보여질 에러 메시지를 입력하는 부분 반드시 값을 입력해야 하는데 그렇지 못했을 경우 나타나는 오류 메시지 |
▷CompareValidator
-고정된 값과 입력 컨트롤 또는 다른 입력 컨트롤과의 값을 비교합니다. 예를 들어 비밀번호의 경우 비밀번호 확인 텍스트 박스에 사용할 수 있습니다. 또한 형식화된 데이터나 숫자의 비교에 사용할 수 있습니다. 즉, 사용자가 입력한 값과 다른 컨트롤의 값을 비교.
Property |
기능 |
ControlToCompare |
비교를 해야 하는 대상을 지정 |
ControlToValidate |
위의 대상과 비교해야 하는 또 다른 하나의 컨트롤 지정 |
ErrorMessage |
Validation Summary컨트롤에 보여질 에러 메시지를 입력하는 부분 반드시 값을 입력해야 하는데 그렇지 못했을 경우 나타나는 오류 메시지 |
▷RegularExpressionValidator
-사용자 입력에 대한 정규식을 확인합니다. 정규식을 활용하면 우편번호나 전화번호 또는 자기가 직접 만든 정규 데이터 형식의 다양한 입력 값의 유효성을 확인을 할 수 있습니다. 즉 일정한 표현 식에 의해 정의된 패턴과 사용자가 입력한 값이 일치하는지 체크.(Ex : 메일주소, 전화번호, 우편번호)
Property |
기능 |
ControlToValidate |
Validator가 영향을 미칠 컨트롤을 설정 |
ValidationExpression |
정해진 정규식을 표현 (정규식 편집기로 지정) |
ErrorMessage |
Validation Summary컨트롤에 보여질 에러 메시지를 입력하는 부분 반드시 값을 입력해야 하는데 그렇지 못했을 경우 나타나는 오류 메시지 |
▷ RangeValidator
-CompareValidator와 비슷하지만 입력한 값을 고정된 두 값을 비교할 수 있습니다. 즉, 사용자가 입력한 값이 특정 범위 내의 값인지 체크(수, 문자열, 날짜의 범위를 체크하고 상수뿐만 아니라 다른 컨트롤에서 추출한 값도 가능)
Property |
기능 |
ControlToValidate |
Validator가 영향을 미칠 컨트롤을 설정 |
MaximumValue |
입력 받을 값의 최대값 설정 |
MinimumValue |
입력 받을 최소값 설정 |
Type |
입력 받아야 할 값이 어떤 형인지 설정 (정수형, 문자형,. 날짜형, 통화량 등) |
ErrorMessage |
Validation Summary컨트롤에 보여질 에러 메시지를 입력하는 부분 반드시 값을 입력해야 하는데 그렇지 못했을 경우 나타나는 오류 메시지 |
▷CustomValidator
-개발자가 직접 유효성 검사 프레임워크의 특정 코드를 입력하도록 허용하는 컨트롤입니다.
Property |
기능 |
ControlToValidate |
Validator가 영향을 미칠 컨트롤을 설정 |
ClientValidationFunction |
사용자가 직접 입력해야 할 사용자 정의 함수 명 설정 |
EnableClientScript |
사용자가 입력하는 스크립트가 JavaScript나 VBScript와 같은 클라이언트 단의 스크립트를 묻는 속성 |
ErrorMessage |
Validation Summary컨트롤에 보여질 에러 메시지를 입력하는 부분 반드시 값을 입력해야 하는데 그렇지 못했을 경우 나타나는 오류 메시지 |
▷Validation Summary
-유효성 검사 컨트롤에 의해서 체크한 결과를 모아서 출력하는 역할
Property |
기능 |
Page.IsValid |
현재 페이지에서 수행한 유효성 검사의 결과를 값으로 저장 |
DisplayMode |
Validation Summary컨트롤의 메시지를 페이지에 표시할 열거방법 지정 (list/ BulletList/ SingleParagraph) |
EnableClientScript |
수집된 오류 정보를 메시지 박스를 통해 보여줌 |
2.3 유효성 검사 컨트롤 사용 예제
실습 |
▷유효성 검사를 하는 회원 가입을 만들어 보자! -시나리오 : 반드시 입력해야 하는 부분으로 Name, ID, Password, Age가 있고 네 가지 항목 중에 한가지라도 입력을 하지 않는다면 각각의 오류 메시지들을 띄운다.
|
실습 – ID |
|
▷적용된 컨트롤과 유효성 검사 속성 설정 -적용 컨트롤 : RequiredFieldValidator -ControlToValidate : ID -Display : None -ErrorMessage : ID 기입은 필수
|
실습 - ID |
|
▷적용된 컨트롤과 유효성 검사 속성 설정 -적용 컨트롤 : RegularExpressionValidator -ControlToValidate : ID -Display : None -ErrorMessage : ID의 형식이 올바르지 않음 -ValidationExpression : \w + ([-+.]\w+)* -ForeColor = Red
|
실습 - NAME |
|
▷적용된 컨트롤과 유효성 검사 속성 설정 -적용 컨트롤 : RequiredFieldValidator -ControlToValidate : NAME -Display : None -ErrorMessage : 이름을 기입하지 않으셨어요! 이름을 입력해 주세요^^ -ForeColor = #ff0066
|
실습 - PW |
|
▷적용된 컨트롤과 유효성 검사 속성 설정 -적용 컨트롤 : RequiredFieldValidator -ControlToValidate : PW -Display : None -ErrorMessage : 비밀번호를 기입하지 않으셨어요! 비민번호를 기입해 주세요^^ -ForeColor = #ff0066
|
실습 - AGE |
|
▷적용된 컨트롤과 유효성 검사 속성 설정 -적용 컨트롤 : RequiredFieldValidator -ControlToValidate : PW -Display : None -ErrorMessage : 나이를 기입하지 않으셨어요! 나이를기입해 주세요^^ -ForeColor = #ff0066
|
실습 – Validation Summary |
|
▷적용된 컨트롤과 유효성 검사 속성 설정 -적용 컨트롤 : Validation Summary -DisplayModel : List -ShowMessageBox : false -ForeColor = #ff0066 -ShowSummary : true
|
소스코드 구현(ValidateControl.aspx) |
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ValidateControl.aspx.cs" Inherits="ValidateControl" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <HTML> <HEAD> <title>회원 가입</title> <LINK href="Style/Styles.css" type="text/css" rel="stylesheet"> <script language="javascript"> function ConfirmUser() { if (confirm("가입하시겠습니까?")) return true; else return false; } </script> </HEAD> <body MS_POSITIONING="FlowLayout"> <form id="Form1" method="post" runat="server"> <table cellpadding="5" cellspacing="1" width="300"> <tr> <td colspan="2"><b>회원가입 가입하기</b></td> </tr> <tr> <td width="70" align="center">ID</td> <td> <asp:TextBox runat="server" ID="ID"></asp:TextBox> <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ErrorMessage="* ID 기입은 필수" ControlToValidate="ID" Display="Dynamic" BorderColor="Red" ForeColor="#FF0066"></asp:RequiredFieldValidator> <asp:RegularExpressionValidator id="RegularExpressionValidator2" runat="server" ErrorMessage="* ID의 형식이 올바르지 않음" ValidationExpression="\w+([-+.]\w+)*" ControlToValidate="ID" Display="None" BorderColor="Red"></asp:RegularExpressionValidator></td>
</tr> <tr> <td align="center">PW</td> <td> <asp:TextBox runat="server" ID="PW" TextMode="Password" Width="100"></asp:TextBox> <asp:RequiredFieldValidator id="RequiredFieldValidator2" runat="server" ErrorMessage="* 비밀번호를 기입하지 않으셨어요! 비밀번호를 기입해 주세요^^" ControlToValidate="PW" Display="None" BorderColor="Red" ForeColor="#FF0066"></asp:RequiredFieldValidator></td> <asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" ErrorMessage="* 비밀번호의 형식이 올바르지 않음" ValidationExpression="\w+([-+.]\w+)*" ControlToValidate="ID" Display="None" BorderColor="Red" ForeColor="#FF066"></asp:RegularExpressionValidator></td> </tr> <tr> <td align="center">NAME</td> <td> <asp:TextBox runat="server" ID="NAME" TextMode="Password" Width="100"></asp:TextBox> <asp:RequiredFieldValidator id="RequiredFieldValidator3" runat="server" ErrorMessage="* 이름을 기입하지 않으셨어요! 이름을 입력해 주세요^^" ControlToValidate="NAME" Display="None" BorderColor="Red" ForeColor="#FF0066"></asp:RequiredFieldValidator></td> </tr> <tr> <td align="center">AGE</td> <td> <asp:TextBox runat="server" ID="AGE" TextMode="Password" Width="100"></asp:TextBox> <asp:RequiredFieldValidator id="RequiredFieldValidator4" runat="server" ErrorMessage="* 나이를 기입하지 않으셨어요! 나이를 입력해 주세요^^" ControlToValidate="AGE" Display="None" BorderColor="Red" ForeColor="#FF0066"></asp:RequiredFieldValidator></td> </tr> <tr> <td colspan="2" align="right"> <asp:Button Runat="server" ID="SubscribeButton" Text="등록" Width="100" onclick="SubscribeButton_Click"></asp:Button> <asp:Button Runat="server" ID="MainButton" Text="취소" Width="100" CausesValidation="False"></asp:Button> </td> </tr> <tr> <td colspan="2" align="center"> <asp:ValidationSummary runat="server" id="ValidationSummary1" DisplayMode="List" BorderColor="Red" ForeColor="#FF0066"></asp:ValidationSummary></td> </tr> </table> </form> </body> </HTML>
|
소스코드 구현(ValidateControl.aspx.cs) |
using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; using System.Data;
public partial class ValidateControl : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { ReadData(); }
private void ReadData() { string strSql = "SELECT * FROM Member";
SqlConnection objCon = new SqlConnection(); objCon.ConnectionString = "Data Source=516-05;Initial Catalog=Bumhee;Integrated Security=True";
objCon.Open();
SqlCommand objCmd = new SqlCommand(); objCmd.Connection = objCon; objCmd.CommandText = strSql; objCmd.CommandType = CommandType.Text;
SqlDataReader objDr = objCmd.ExecuteReader(); }
protected void Button2_Click(object sender, EventArgs e) { this.ID.Text = string.Empty; this.NAME.Text = string.Empty; this.PW.Text = string.Empty; this.AGE.Text = string.Empty; } protected void SubscribeButton_Click(object sender, EventArgs e) { try { SubscribeButton.Enabled = false;
string ID = this.ID.Text; string NAME = this.NAME.Text; string PW = this.PW.Text; string AGE = this.AGE.Text;
string strSql = "INSERT into Member Values('" + ID + "','" + NAME + "','" + PW + "','" + AGE + "')"; //입력버튼을 눌렀을때 INSERT SQL문 실행
SqlConnection objCon = new SqlConnection(); objCon.ConnectionString = "Data Source=516-05;Initial Catalog=Bumhee;Integrated Security=True"; objCon.Open();
//커맨드 객체 SqlCommand objCmd = new SqlCommand(); objCmd.Connection = objCon; objCmd.CommandText = strSql; objCmd.CommandType = CommandType.Text;
objCmd.ExecuteNonQuery(); objCon.Close(); } catch (Exception error) { throw new NotImplementedException("이미 처리 되었습니다."); } Response.Redirect("./ValidateControl.aspx");
}
}
|
'포트폴리오 자료 > 기술문서' 카테고리의 다른 글
Win32 API 기술문서 (ListBox) (0) | 2016.04.17 |
---|
이 글을 공유하기