ASP.NET의 유효성 검사 컨트롤은 사용자가 입력한 데이터의 유효성을 검사하여 쓸모 없고 승인되지 않았으며 모순되는 데이터가 저장되지 않도록 합니다.
ASP.NET은 유효성 검사 제어의 다음과 같은 측면을 제공합니다.
필수 필드 유효성 검사기
RangeValidator
CompareValidator
정규식 유효성 검사기(RegularExpressionValidator)
커스텀 유효성 검사기(CustomValidator)
검증 요약 제어(ValidationSummary)
유효성 검사 클래스는 BaseValidator 클래스에서 상속되므로 해당 속성과 메서드를 상속합니다. 그러므로 모든 효과통제의 기본이 되는 이 기본수업의 속성과 방법을 익히는 것은 이후의 학습에 큰 도움이 될 것입니다.
구성 요소 | 설명하다 |
---|---|
ControlToValidate | 유효성을 검사할 입력 컨트롤을 가져오거나 설정합니다. |
표시하다 | 오류 메시지가 표시되는 방식을 설명합니다. |
클라이언트스크립트 활성화 | 클라이언트가 확인을 채택했는지 여부를 나타냅니다. |
활성화됨 | 유효성 검사기를 활성화하거나 비활성화합니다. |
오류 메시지 | 오류를 설명하는 문자열입니다. |
텍스트 | 유효성 검사가 실패할 경우 표시될 텍스트입니다. |
유효함 | 컨트롤 값이 유효한지 여부를 나타냅니다. |
SetFocusOnError | 유효성 검사가 실패할 경우 관련 입력 컨트롤에 포커스를 설정할지 여부입니다. |
유효성 검사 그룹 | 이 유효성 검사 컨트롤이 속한 유효성 검사 그룹의 이름을 가져오거나 설정합니다. |
검증 | 연결된 입력 컨트롤에 대한 유효성 검사를 수행하고 IsValid 속성을 업데이트합니다. |
필수FieldValidator 컨트롤은 필수 필드가 비어 있지 않은지 확인합니다. 주로 사용자가 텍스트 상자에 입력할 수 있도록 텍스트 상자에 바인딩됩니다.
이 컨트롤의 구문은 다음과 같습니다.
<asp:RequiredFieldValidator ID="rfvcandidate" runat="server" ControlToValidate ="ddlcandidate" ErrorMessage="Please choose a candidate" InitialValue="Please choose a candidate"></asp:RequiredFieldValidator>
RangeValidator 컨트롤은 입력된 값이 미리 설정된 범위 내에 있는지 확인하는 역할을 합니다.
여기에는 세 가지 특정 속성이 있습니다.
재산 | 설명하다 |
---|---|
유형 | 데이터 유형을 정의합니다. 사용 가능한 데이터 유형에는 통화, 날짜, 실수, 정수 및 문자열이 포함됩니다. |
최소값 | 범위의 최소값을 지정합니다. |
최대값 | 범위의 최대값을 지정합니다. |
이 컨트롤의 구문은 다음과 같습니다.
<asp:RangeValidator ID="rvclass" runat="server" ControlToValidate="txtclass" ErrorMessage="Enter your class (6 - 12)" MaximumValue="12" MinimumValue="6" Type="Integer"></asp:RangeValidator>
CompareValidator 컨트롤은 다른 입력 컨트롤에 입력된 값, 상수 숫자 값 또는 올바른 데이터 유형을 기반으로 값의 유효성을 검사합니다.
여기에는 다음과 같은 특정 속성이 있습니다.
재산 | 설명하다 |
---|---|
유형 | 데이터 유형을 정의합니다. |
비교 대상 제어 | 비교해야 하는 입력 컨트롤의 값을 지정합니다. |
비교할 값 | 입력 컨트롤에서 변경되지 않는 값을 지정합니다. |
연산자 | 사용 가능한 값에는 동등, 부등, 크거나 같음, 작음, 작거나 같음 및 데이터 유형 검사가 포함됩니다. |
이 컨트롤의 기본 구문은 다음과 같습니다.
<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="CompareValidator"></asp:CompareValidator>
RegularExpressionValidator 컨트롤을 사용하면 입력을 정규식과 일치시켜 입력의 유효성을 확인할 수 있습니다. 정규식은 ValidationExpression 속성에 설정됩니다.
다음 표에는 정규식에 일반적으로 사용되는 구문 구조가 요약되어 있습니다.
이스케이프 문자 | 설명하다 |
---|---|
비 | 백스페이스 키와 일치합니다. |
티 | 일치 탭. |
아르 자형 | Enter 키와 일치합니다. |
다섯 | 세로 탭 문자와 일치합니다. |
에프 | 폼 피드 문자와 일치합니다. |
N | 줄 바꿈을 일치시킵니다. |
탈출 문자. |
간단한 문자 일치 외에도 문자 유형을 일치하도록 설정할 수 있습니다. 이러한 문자를 와일드카드라고 합니다.
와일드카드 | 설명하다 |
---|---|
. | n을 제외한 모든 문자와 일치할 수 있습니다. |
[abcd] | 세트의 모든 문자와 일치할 수 있습니다. |
[^ ABCD] | 세트에서 모든 문자를 제외합니다. |
[2-7a-mA-M] | 특정 범위 내의 모든 문자와 일치합니다. |
w | 모든 영숫자 문자 그룹 및 밑줄과 일치합니다. |
W | 단어가 아닌 문자와 일치합니다. |
에스 | 공백, 탭 정지, 개행 등의 문자를 일치시킵니다. |
에스 | 공백이 아닌 문자와 일치합니다. |
디 | 모든 소수 문자와 일치합니다. |
디 | 십진수가 아닌 모든 문자와 일치합니다. |
한정자는 문자가 나타나는 특정 수의 단어를 나타낼 수 있습니다.
수량자 | 설명하다 |
---|---|
* | 0개 이상의 일치 항목입니다. |
+ | 하나 이상의 일치. |
? | 0개 또는 1개 일치합니다. |
{N} | N개 일치합니다. |
{N,} | N개 이상 일치합니다. |
{N,M} | N과 M이 일치합니다. |
이 컨트롤의 기본 구문은 다음과 같습니다.
<asp:RegularExpressionValidator ID="string" runat="server" ErrorMessage="string" ValidationExpression="string" ValidationGroup="string"></asp:RegularExpressionValidator>
CustomValidator 컨트롤을 사용하면 클라이언트측 및 서버측 특정 유효성 검사 루틴을 작성하여 값의 유효성을 검사할 수 있습니다.
클라이언트 유효성 검사는 ClientValidationFunction을 통해 적절하게 수행됩니다. 클라이언트 측 유효성 검사 루틴은 JavaScript 또는 VBScript와 같이 브라우저가 이해할 수 있는 스크립팅 언어로 작성되어야 합니다.
서버측 유효성 검사 루틴은 컨트롤의 ServerValidate 이벤트 처리기에 의해 생성되어야 합니다. 서버측 유효성 검사 루틴은 C# 또는 VB.Net과 같은 .Net 언어로 작성되어야 합니다.
이 컨트롤의 기본 구문은 다음과 같습니다.
<asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction=.cvf_func. ErrorMessage="CustomValidator"></asp:CustomValidator>
ValidationSummary 컨트롤은 유효성 검사를 수행하지 않지만 페이지의 모든 오류에 대한 요약을 표시합니다. 이 요약에는 실패한 모든 유효성 검사 컨트롤의 ErrorMessage 속성 값이 표시됩니다.
다음 두 가지 상호 포함 속성 목록은 오류 메시지를 나열합니다.
ShowSummary : 오류 정보를 특별한 형식으로 표시합니다.
ShowMessageBox : 오류 메시지를 별도의 창에 표시합니다.
이 컨트롤의 기본 구문은 다음과 같습니다.
<asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode = "BulletList" ShowSummary = "true" HeaderText="Errors:" />
복잡한 페이지에는 다양한 수준의 다양한 정보 세트가 있습니다. 이 경우 그룹별로 서로 다른 검증을 갖게 됩니다. 이 상황은 검증 그룹을 사용하여 해결할 수 있습니다.
유효성 검사 그룹을 생성하려면 ValidationGroup 속성을 설정하여 입력 컨트롤과 유효성 검사 컨트롤을 동일한 논리 그룹에 배치해야 합니다.
다음 예는 총장 선거에 출마하기 위해 학교 전체가 작성하게 될 네 부분으로 구성된 양식을 설명합니다. 여기서는 유효성 검사 컨트롤을 사용하여 사용자가 입력한 내용을 확인합니다.
디자인 보기에서는 다음과 같습니다.
이 부분의 코드는 다음과 같습니다.
<form id="form1" runat="server"> <table> <tr> <td colspan="3" align="center"> <asp:Label ID="lblmsg" Text="대통령 선거 양식: 귀하의 대통령 선거 양식을 선택하세요 President" runat="server" /> </td> </tr> <tr> <td> 후보자: </td> <td> <asp:DropDownList ID="ddlcandidate" runat="server" > <asp:ListItem>후보자를 선택하십시오</asp:ListItem> <asp:ListItem>M H Kabir</asp:ListItem> <asp:ListItem>Steve Taylor</asp:ListItem> <asp:ListItem>John Abraham</ asp:ListItem> <asp:ListItem>비너스 윌리엄스</asp:ListItem> </asp:DropDownList> </td> <td> <asp:RequiredFieldValidator ID="rfvcandidate" runat="server" ControlToValidate ="ddlcandidate" ErrorMessage="후보를 선택하세요" InitialValue="후보를 선택하세요"> </asp:RequiredFieldValidator> </td> </tr> <tr> < td> 집: </td> <td> <asp:RadioButtonList ID="rblhouse" runat="server" RepeatLayout="Flow"> <asp:ListItem>빨간색</asp:ListItem> <asp:ListItem>파란색</asp:ListItem> <asp:ListItem>노란색</asp:ListItem> <asp:ListItem>녹색</asp:ListItem> </ asp:RadioButtonList> </td> <td> <asp:RequiredFieldValidator ID="rfvhouse" runat="서버" ControlToValidate="rblhouse" ErrorMessage="집 이름을 입력하세요" > </asp:RequiredFieldValidator> <br /> </td> </tr> <tr> <td> 클래스: </td> <td> <asp:TextBox ID="txtclass " runat="서버"></asp:TextBox> </td> <td> <asp:RangeValidator ID="rvclass" runat="서버" ControlToValidate="txtclass" ErrorMessage="클래스를 입력하세요(6 - 12)" MaximumValue="12" MinimalValue="6" Type="Integer"> </asp:RangeValidator> </td> </tr> <tr> <td> 이메일: </td> <td> <asp:TextBox ID="txtemail" runat="server"> </asp:TextBox> </td> <td> <asp:RegularExpressionValidator ID="remail" runat="server" ControlToValidate="txtemail" ErrorMessage="이메일을 입력하세요" ValidationExpression="w+([-+.']w+)*@w+([ -.]w+)*.w+([-.]w+)*"> </asp:RegularExpressionValidator> </td> </tr> <tr> <td align="center" colspan="3"> <asp:Button ID="btnsubmit" runat="server" onclick="btnsubmit_Click" style="text-align: center" Text= "제출" /> </td> </tr> </table> <asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode ="BulletList" ShowSummary ="true" HeaderText="오류:" /></form>
제출 버튼의 코드는 다음과 같습니다.
protected void btnsubmit_Click(object sender, EventArgs e){ if (Page.IsValid) { lblmsg.Text = "감사합니다" } else { lblmsg.Text = "모든 필드를 채워주세요";