5. 메시지 페이지 만들기----데이터 유효성 검사 컨트롤 및 데이터 추가
관련 소개:
웹사이트에는 데이터 정확성이 필요합니다. 사용자가 입력한 데이터가 올바른지 보다 쉽게 확인할 수 있도록 ASP.NET에서는 프로그래머에게 데이터 유효성 검사 컨트롤을 제공합니다. ASP.NET에서 제공하는 데이터 유효성 검사 컨트롤에는 다음이 포함됩니다. (참고: 코드를 표시하기 위해 다음 모든 코드에는 "<" 뒤와 ">" 앞에 공백이 있습니다. 불편을 끼쳐드려 죄송합니다!):
제어 | 기능인 |
RequireFieldValidator는 | 입력 필드에 입력된 데이터가 있는지 확인합니다.RangeValidator |
는 |
입력 | 필드에 입력된 데이터가 특정 범위 내에 있는지 확인합니다. |
입력 필드가 같음, 같지 않음, 초과, 작지 않음, 작음인지 테스트합니다. |
ValidationSummary | 에는 테스트에 실패한 모든 컨트롤이 나열됩니다. |
RegularExpressionValidator |
|
열이 정규식 규칙 CustomValidator | 사용자 정의 유효성 검사 규칙을 |
준수하는지 확인 |
STEP 1 디자인 페이지 <BR>먼저 테이블을 사용하여 대략적인 프레임워크를 디자인합니다. 데이터베이스의 COMMENTS 테이블에는
[그림 5-1 데이터베이스 프레임워크]
COMMENT_ID(자동 번호), FIRST_NAME(텍스트), LAST_NAME(텍스트), TELEPHONE(텍스트), EMAIL(텍스트), SUBMIT_DATE(날짜/시간), COMMENTS(메모), ANSWERED(부울 값) 및 기타 필드. 필요에 따라 우리는 reg.aspx라는 사이트에서 아래와 같이 페이지를 디자인했습니다.
[그림 5-2 초기 화면]
그 중 COMMENT_ID는 ACCESS에 의해 자동으로 추가될 수 있으며, ANSWERED는 사용자가 추가할 필요가 없습니다. SUBMIT_DATE의 기본값은 Now()로 설정되어 있으며, ACCESS는 추가된 레코드의 날짜를 자동으로 기록합니다.
이전 ASP 페이지에서는 다음을 전달할 수 있습니다.
데이터를 입력하기 위한 입력 상자를 설정합니다. ASP.NET에는 데이터를 허용하는 텍스트 상자 컨트롤이 있습니다. 구문은 다음과 같습니다.
< asp:textbox id=”…” runat=”server” 기타 특성/ >
DreamweaverMX에서는 다음을 클릭할 수 있습니다. 텍스트 상자 컨트롤을 추가하는 바로가기 버튼입니다. 팝업 대화 상자에서 ID, 텍스트 모드(대화 상자 유형), 도구 설명(컨트롤 위에 마우스를 올렸을 때 나타나는 메시지), 레이아웃(스타일 디자인), 스타일 정보(입력을 설정하는 데 사용)를 설정합니다. 텍스트 형식 및 텍스트 상자 테두리 형식)을 사용하여 컨트롤을 설정합니다. 아래 그림은 텍스트 상자의 설정 대화 상자입니다.
[그림 5-3 텍스트박스 설정 대화상자 1]
[그림 5-4 텍스트박스 설정 대화상자 2]
[그림 5-5 텍스트박스 설정 대화상자 3]
COMMENT 데이터 항목은 많은 양의 텍스트를 입력해야 하므로 여러 입력 라인이 있는 텍스트 상자를 사용해야 합니다. 텍스트 모드를 MultiLine으로 설정하고 원하는 행 수(Rows)를 입력하면 됩니다.
추가된 이벤트를 생성하기 위해서는 버튼도 필요합니다. 양식 탭을 클릭하고 "버튼" 버튼을 클릭하여 추가하세요.
STEP2 데이터 검증 활용
이름, 성, 전화번호, 이메일을 반드시 입력해야 하므로, 사용자가 입력하는 것을 잊어버리지 않도록 필수FieldValidator 컨트롤을 추가하여 컨트롤을 검증할 수 있습니다. 컨트롤은 유효성 검사 오류가 발생할 경우 해당 위치에서 확인에 실패한 콘텐츠를 표시하므로 데이터 유효성 검사 컨트롤을 적절한 위치에 배치해야 합니다.
필수FieldValidator 데이터 유효성 검사를 위한 제어 구문은 다음과 같습니다.
< asp:RequiredFieldValidato 기타 특성 runat="server" >오류 메시지</ asp:RequiredFieldValidator >
또는
< asp:RequiredFieldValidator ErrorMessage="오류 메시지" 기타 특성 runat="server"/ >
추가 태그를 클릭한 후 ASP.NET 태그의 유효성 검사 서버를 선택하면 선택할 수 있는 다양한 유형의 데이터 유효성 검사 컨트롤이 있음을 확인할 수 있습니다. First_name 입력 상자 뒤에 유효성 검사 컨트롤 asp:RequiredFieldValidator를 추가해야 합니다.
RequiredfieldValidator 컨트롤 설정 창에서 유효성을 검사할 컨트롤은 이 데이터 유효성 검사 컨트롤과 연결된 입력 컨트롤의 ID이고 오류 메시지는 데이터 유효성 검사가 실패할 때 표시되는 메시지입니다. 동시에 레이아웃과 스타일 정보를 설정하여 필요한 스타일을 선택할 수 있습니다.
[그림 5-6 검증 컨트롤 선택]
[그림 5-7 필수fieldValidator 컨트롤 설정 대화상자]
동시에 Last_Name 입력 상자 뒤에 동일한 방법을 사용하여 또 다른 필수FieldValidato 데이터 유효성 검사 컨트롤을 추가합니다. 이제 페이지를 저장하고 미리 볼 수 있습니다. First_name, Last_name 입력란에 데이터를 입력하지 않은 상태에서 Submit 버튼을 클릭하면 인증 실패 메시지가 나타납니다. 그림 5-8과 같습니다.
하지만 유효한 데이터를 확인해야 하는 경우가 많습니다. 예를 들어 우편번호는 6자리여야 하고, 입력한 이메일 주소는 특정 형식이어야 합니다. 여기서는 RegularExpressionValidator를 사용하여 데이터의 유효성을 확인해야 합니다. 이 등록 페이지에서는 전화와 이메일 모두 확인을 위해 이 컨트롤을 사용할 수 있습니다.
[그림 5-8 필수필드검사기 대화상자]
[그림 5-9 이메일 설정 속성]
필수필드 유효성 검사 컨트롤을 추가하는 방법과 유사하게 "추가 태그.."를 클릭하여 데이터 유효성 검사 컨트롤을 추가하도록 선택합니다. 차이점은 유효성 검사 표현식을 설정하는 것입니다. 휴대폰에서는 7~10자리를 입력해야 하므로 다음과 같이 설정해야 합니다.
[0-9]{7,10}
구문은 다음과 같습니다.
[]: 허용되는 문자를 정의하는 데 사용됩니다. 예를 들어, az는 소문자 'a'-'z'가 허용되는 문자임을 의미하고, a-zA-Z는 모든 문자가 허용된다는 의미이며, 0-9는 모든 문자가 허용된다는 의미입니다. 숫자.
{}: 입력해야 하는 문자 수를 정의하는 데 사용됩니다. {7,10}은 7~10자를 입력할 수 있음을 의미하고, {0,}는 0자까지 무제한으로 허용된다는 의미입니다.
'.': 임의의 문자를 입력함을 나타냅니다. .{0,}은 0부터 무한대까지 모든 문자가 허용된다는 의미입니다.
|: OR(또는)을 나타냅니다. 예를 들어 [A-Za-z]{3}|[0-9]{3}는 영문자 3개 또는 숫자 3개를 사용할 수 있음을 의미합니다.
(): 쉽게 읽을 수 있도록 | 기호가 포함된 문자열은 일반적으로 ()로 묶입니다. 예를 들면 ([A-Za-z]{3}|[0-9]{3})입니다.
: [], {}, (), | 등과 같은 특수 기호가 포함된 경우 해당 문자열 앞에 를 추가해야 합니다.
다음은 보다 일반적으로 사용되는 몇 가지 예입니다.
이메일: .{1,}@.{1,}/..{1}
전화번호(지역번호 포함): ([0-9]{3,4}))[0-9]{7,8}
사용자 입력이 실제 데이터라는 보장은 없지만 유효성 검사 컨트롤을 통해 형식이 올바른지 확인할 수 있습니다.
[그림 5-10 미리보기 페이지]
CompareValidator 컨트롤의 경우 해당 속성은 다음과 같이 설정됩니다.
비교할 컨트롤은 | 비교할 컨트롤을 설정합니다. |
검증할 컨트롤 | 은 연결된 컨트롤을 설정합니다. |
비교할 값 | 비교 값을 설정합니다. |
연산자는 | 비교 관계를 설정합니다 ( 같음, 같지 않음, 보다 큼, 크거나 같음, 작음, 작거나 같음 ). |
유형 | 비교 데이터 유형 |
오류 메시지는 | 정보를 표시합니다. |
[그림 5-11 CompareValidator 설정 대화상자]
CustomValitor의 설정 방법은 다른 컨트롤과 유사하지만 데이터를 확인하려면 손으로 쓴 함수 OnServerValidate(이벤트 내)가 필요합니다.
[그림 5-12CustomValitor 설정 대화상자]
예를 들어
< asp:CustomValidator id="CusValid" runat="server" ControlToValidate=컨트롤 이름 OnServerValidate="TheFunction" >오류 메시지</ asp:CustomValidator >
<스크립트 언어=”vb” runat=”서버” >
함수 TheFunction(객체로서의 송신자, 문자열로서의 값) as Boolean
.....
반품…
기능 종료
</ /스크립트 >
이 컨트롤은 TheFuncion 함수를 호출합니다. false가 반환되면 오류 메시지가 보고됩니다.
RangeValidator 컨트롤
[그림 5-12 RangeValidatorr 설정 대화상자]
최소값과 최대값을 통해 값의 범위를 설정할 수 있습니다. 동시에 "문자열", "정수" 등 Type을 통해 비교 유형을 설정할 수 있습니다. 다른 설정은 다른 구성요소의 설정과 유사합니다.
ValidationSummary라는 구성요소도 있습니다. 그 중 HeaderText는 헤더 텍스트를 설정하고, DisplayMode는 표시 모드를 설정합니다.
List BulletList SingleParagraph ErrorMessage를 의미하는 | 속성 값은 |
별도 의 줄 | 에 표시됩니다. ErrorMessage 는 같은 줄에 표시됩니다. |
[그림 5-13 ValidationSummary 속성 설정 대화상자]
첨부된 내용은 주요 프로그램 세그먼트의 소스 코드입니다.
< 테이블 너비="75%" 높이="594" border="1" cellpadding="1" cellpacing="0" bordercolor="#999999" >
<tr>
< td width="22%" height="22" >이름< /td >
< td width="38%" >< asp:textbox BackColor="#CCCCCC" ForeColor="#0033FF" ID="first" runat="server" TextMode="SingleLine" ToolTip="이름을 입력하세요" MaxLength ="40" BorderWidth="1" width="200"/ >< /td >
< td width="40%" >< asp:requiredfieldvalidator BackColor="#CCCCCC" ControlToValidate="first" ErrorMessage="RequiredField" ForeColor="#FF0000" ID="validname" runat="server" / > < /td >
< /tr >
<tr>
< td height="22" >성< /td >
< td >< asp:textbox BackColor="#CCCCCC" ForeColor="#0033FF" ID="성" runat="서버" TextMode="SingleLine" Width="200" ToolTip="성을 입력하세요" BorderWidth= "1"/ >< /td >
< td >< asp:requiredfieldvalidator BackColor="#CCCCCC" ControlToValidate="성" ErrorMessage="RequiredField" ForeColor="#FF0000" ID="vailLast" runat="서버" / > </ /td >
< /tr >
<tr>
< td height="22" >전화< /td >
< td >< asp:textbox BackColor="#CCCCCC" BorderWidth="1" ForeColor="#0066FF" ID="telephone" runat="server" TextMode="SingleLine" ToolTip="전화기를 입력하세요" Width=" 200" / >< /td >
< td > < asp:regularexpressionvalidator BackColor="#CCCCCC" ControlToValidate="전화" ErrorMessage="7-10개 숫자 필요" ForeColor="#FF0000" ID="vailtel" runat="서버" ValidationExpression="[0-9 ]{7,10}" / > < asp:requiredfieldvalidator BackColor="#CCCCCC" ControlToValidate="telephone" ErrorMessage="RequiredField" ForeColor="#FF0000" ID="vailtel2" runat="server" / >< /td >
< /tr >
<tr>
< td height="22" >이메일< /td >
< td >< asp:textbox BackColor="#CCCCCC" BorderWidth="1" ForeColor="#0033FF" ID="email" runat="server" TextMode="SingleLine" ToolTip="이메일을 입력하세요" 너비 ="200"/ >< /td >
< td >< asp:regularexpressionvalidator BackColor="#CCCCCC" ControlToValidate="email" ErrorMessage="이메일 주소 유효하지 않음" ForeColor="#FF0000" ID="valiemail" runat="server" ValidationExpression=".{1,}@ .{3,}" / > < asp:requiredfieldvalidator BackColor="#CCCCCC" ControlToValidate="email" ErrorMessage="필수 필드" ForeColor="#FF0000" ID="valiemail2" runat="server" / > < /td >
< /tr >
<tr>
< td height="22" colspan="3" >< div align="center" >댓글< /div >< /td >
< /tr >
<tr>
< td height="188" colspan="3" >< div align="center" >
< asp:textbox BackColor="#CCCCCC" BorderWidth="1" ForeColor="#0033FF" ID="Comments" Rows="16" runat="server" TextMode="MultiLine" ToolTip="설명을 입력하세요" 너비 ="400"/ >
< /div >
< div align="center" > < br >
< /div >< /td >
< /tr >
<tr>
< td height="71" colspan="3" >< div align="center" >
< asp:validationssummary BackColor="#CCCCCC" DisplayMode="BulletList" ForeColor="#FF0000" HeaderText="잘못된 콘텐츠에는 다음이 포함됩니다:" ID="valSum" runat="server" ToolTip="Error" / >
< /div >< /td >
< /tr >
<tr>
< td height="22" colspan="3" >< input type="submit" name="제출" value="제출" >
</ /td >
< /tr >
< /테이블 >
스타일은 다음과 같습니다.
[그림 5-14 미리보기]
STEP 3 데이터 추가
데이터 추가 기능은 마법사를 통해 데이터 추가 기능을 설정하고 DreamweaverMX가 자동으로 코드를 추가하도록 할 수 있어 비교적 간단합니다. 응용 프로그램에서 서버 동작 탭을 클릭한 다음 + 버튼을 클릭하여 레코드 삽입을 선택합니다(그림 5-15).
팝업 대화 상자에서는 먼저 연결된 데이터 소스를 결정해야 합니다. 목록에 없으면 정의 버튼을 클릭하여 데이터 소스를 설정할 수 있습니다(그림 5-16). 테이블에 삽입은 데이터를 추가해야 하는 테이블을 설정하는 데 사용됩니다. 열에서는 텍스트 상자를 해당 데이터 소스와 일치시키고 데이터 유형을 설정할 수 있습니다. 성공 시 Go To는 데이터가 성공적으로 추가되면 이동할 페이지를 설정합니다. 실패 시 Go To는 데이터 추가에 실패할 경우 이동할 페이지를 설정할 수 있습니다. 동시에 실패 시 디버깅 정보 표시를 선택하여 데이터 추가에 실패할 때 표시할 오류 메시지를 설정할 수도 있습니다.
[그림 5-15 레코드 삽입 선택]
[그림 5-16 데이터 추가 설정]
추가된 코드를 살펴보겠습니다.
<MM:삽입
runat="서버"
CommandText='< %# "댓글에 삽입(댓글, 이메일, 이름, 성, 전화) 값(?, ?, ?, ?, ?)" % >'
ConnectionString='< %# System.Configuration.ConfigurationSettings.AppSettings("MM_CONNECTION_STRING_location") % >'
DatabaseType='< %# System.Configuration.ConfigurationSettings.AppSettings("MM_CONNECTION_DATABASETYPE_location") % >'
표현식='< %# Request.Form("MM_insert") = "form1" % >'
CreateDataSet="false"
SuccessURL='< %# "index.htm" % >'
FailureURL='< %# "reg.aspx" % >'
디버그="참"
>
<파라미터>
< Parameter Name="@COMMENTS" Value='< %# IIf((Request.Form("Comments") < > Nothing), Request.Form("Comments"), "") % >' Type="WChar" />
< Parameter Name="@EMAIL" Value='< %# IIf((Request.Form("email") < > Nothing), Request.Form("email"), "") % >' Type="WChar" />
< Parameter Name="@FIRST_NAME" Value='< %# IIf((Request.Form("first") < > Nothing), Request.Form("first"), "") % >' Type="WChar" />
< Parameter Name="@LAST_NAME" Value='< %# IIf((Request.Form("Lastname") < > Nothing), Request.Form("Lastname"), "") % >' Type="WChar" />
< Parameter Name="@TELEPHONE" Value='< %# IIf((Request.Form("telephone") < > Nothing), Request.Form("telephone"), "") % >' Type="WChar" />
< /매개변수 >
< /MM:삽입>
MM: Insert는 Dreamweaver에서 데이터베이스를 추가하는 데 사용되는 레이블이고 Parameter는 매개변수를 지정하는 데 사용되는 값입니다.
이전 코드는 추가 성공 후 이동할 페이지와 데이터베이스 링크를 지정하는 데 사용됩니다. 추가에 실패하면 관련 테이블과 함께 오류 메시지가 표시됩니다.
이는 MacroMedia 자체에서 개발되었으며 Macromedia의 일부 구성 요소의 지원이 필요합니다. 이는 오늘날 인터넷에 있는 많은 ASP.net의 표준 코드 형식과 다릅니다. 코드를 참조할 때 이 코드를 기반으로 하는 ASP.net의 표준 코드 형식을 오해하지 마시기 바랍니다. 표준 코드 형식은 www.gotdotnet.com을 참조하세요. 표준 코드를 작성하려면 WebMatrix를 사용할 수 있습니다. 다운로드 주소는 http://www.asp.net/webmatrix/download.aspx?tabindex=4입니다.