เว็บโฮสติ้งเอื้ออาทร
Welcome :Guest  ( Register - Login )
  Active TopicsActive Topics  Display List of Forum Membersรายชื่อสมาชิก  Search The ForumSearch
Menu
  Home
  ASP
  ASP.NET
  SQL
  PHP
  Forum(s)
  Guest Book
    Sign Guestbook
  Download
  Contact us
  ติดต่อโฆษณา
Member Online
Total Users Online: 5

We have
  0 Member(s)
  5 Guest(s)
  0 Anonymous.

Most User Online: 8042
Occured: 06 April 2008

Members Online:



[ View Full List ]
[Based on the last 10 minutes]

You are visitor number 3173036
Validation Control
      คอนโทรลตัวนี้ไมโครซอฟท์สร้างขึ้นมาเพื่ออำนวยความสะดวกเล็กๆ น้อยๆ เกี่ยวกับการใช้งานฟอร์มนั่นเอง ซึ่งแม้ฟอร์มนี้จะเป็นเพียงแค่ส่วนย่อยๆ ส่วนหนึ่งของหน้าเว็บเพจ แต่กลับสร้างปัญหาได้อย่างมากมาย เช่น การกรอกข้อมูลไม่ครบถ้วน การกรอกข้อมูลผิดประเภท และปัญหาอื่นๆ อีกมากมาย หลายคนอาจถามว่าก็แค่เขียนโปรแกรมตรวจสอบด้วย JavaScript หรือ ASP ก็ไม่น่าจะยาก ก็ยอมรับว่าสามารถกระทำได้ แต่คงไม่สนุกแน่หากเราต้องมานั่งเขียนทุกๆหน้าเว็บเพจ อีกทั้งการมีสคริปต์มากๆ นั้นย่อมมีปัญหาการโหลดช้าตามไปด้วย กว่าจะโหลดเสร็จผู้ชมคงปิดหน้าเว็บเราไปเรียบร้อยแล้ว

รูปแบบการใช้งานทั่วไปของ Validation Control

รูปแบบ

<asp : ชื่อคอนโทรล พร็อพเพอร์ตี้ของคอนโทรลนั้น runat = "server"/>

หรือ

<asp : ชื่อคอนโทรล พร็อพเพอร์ตี้ของคอนโทรลนั้น runat = "server">…</asp : ชื่อคอนโทรล>

ซึ่งรายละเอียดของคอนโทรลแต่ละชนิดใน Validation Control เป็นดังนี้

RequirdFieldValidator
      คอนโทรลนี้มีหน้าที่ตรวจสอบว่าข้อมูลในฟอร์มนั้นมีการกรอบครบหรือยัง หากยังไม่ครบก็จะไม่ยอมให้ Submit พร้อมกับขึ้นข้อความแสดงว่าเรายังกรอกข้อมูลไม่ครบถ้วน ซึ่งข้อความดังกล่าวเราสามารถกำหนดได้เองทั้งหมด

<asp:RequiredFieldValidator ControlToValidate = "ชื่อฟอร์มที่ต้องการตรวจสอบ"
ErrorMessage = "ข้อความที่ต้องการแสดงออกมาเมื่อตรวจสอบแล้วไม่ตรงกับเงื่อนไข" runat = "server"/>


ซึ่งฟอร์มที่เราจะนำมาใช้ตรวจสอบต้องสร้างด้วยคอนโทรลที่เกี่ยวกับฟอร์ม โดยที่
  • พร็อพเพอร์ตี้ ControlToValidate ใช้กำหนดชื่อฟอร์มที่ต้องการตรวจสอบ
  • พร็อพเพอร์ตี้ ErrorMessage เป็นส่วนที่จะแสดงข้อความบนเว็บเพจหากกรอกข้อมูลไม่ครบ
ตัวอย่าง
<html>
<body>

<form runat="server">
Name: <asp:TextBox id="name" runat="server" />
<br />
Age: <asp:TextBox id="age" runat="server" />
<br /><br />
<asp:Button runat="server" Text="Submit" />
<br /><br />
<asp:RequiredFieldValidatorControlToValidate="name"Text="The name field is required!"runat="server" />
</form>

</body>
</html>


ผลแสดงออกมาดังนี้


CompareValidator
      เป็นคอนโทรลใช้ในการเปรียบเทียบว่าข้อมูลที่เรากรอกในแต่ละช่องนั้นตรงกันหรือไม่ ซึ่งฟอร์มที่เห็นบ่อยๆ ว่าต้องกรอก 2 ช่องให้เหมือนกันก็คือ ช่องใส่ Password นั่นเอง รวมทั้งระบบต่างๆที่ต้องการยืนยันอะไรที่มันแน่นอน นับได้ว่าเป็นคอนโทรลมีประโยชน์มากทีเดียว

<asp: CompareValidator ControlToValidate = "ชื่อของฟอร์มที่ต้องการเปรียบเทียบ"
ControlToCompare = "ชื่อของฟอร์มที่ต้องการเปรียบเทียบ" ErrorMessage =
"ข้อความที่ต้องการแสดงออกมาเมื่อตรวจสอบแล้วไม่ตรงกับเงื่อนไข" runat = "server"/>


ซึ่งฟอร์มที่เราจะนำมาใช้ตรวจสอบเราต้องสร้างด้วยคอนโทรลที่เกี่ยวกับฟอร์ม และต้องมีมากกว่า 1 ฟอร์ม (ไม่เช่นนั้นก็ไม่ทราบว่าจะเปรียบเทียบอะไร) โดยที่
  • พร็อพเพอร์ตี้ ControlToValidate ใช้กำหนดชื่อฟอร์มหลักที่ใช้เป็นตัวเทียบ
  • พร็อพเพอร์ตี้ ControlToCompare ใช้กำหนดชื่อฟอร์มที่ต้องการเปรียบเทียบ
  • พร็อพเพอร์ตี้ ErrorMessage เป็นส่วนที่ใช้กำหนดว่าหากเรากรอกข้อมูลไม่ตรงกันแล้วจะให้แสดงคำว่าอะไรออกมาทางหน้าเว็บเพจ
ตัวอย่าง
<html>
<body>

<form runat="server">
<table border="0" bgcolor="#b0c4de">
   <tr valign="top">
     <td colspan="4"><h4>Compare two values</h4></td>
   </tr>
   <tr valign="top">
     <td><asp:TextBox id="txt1" runat="server" /></td>
     <td> = </td>
     <td><asp:TextBox id="txt2" runat="server" /></td>
     <td><asp:Button Text="Validate" runat="server" /></td>
   </tr>
</table>
<br />
<asp:CompareValidator
id="compval"
Display="dynamic"
ControlToValidate="txt1"
ControlToCompare="txt2"
ForeColor="red"
BackColor="yellow"
Type="String"
EnableClientScript="false"
Text="Validation Failed!"
runat="server" />
</form>

</body>
</html>

ผลแสดงออกมาดังนี้       ตัวอย่างที่ 2


RangeValidator
      คอนโทรลนี้ใช้ในการตรวจสอบว่าข้อมูลที่เรากรอกลงไปนั้นมีค่าเกินหรือน้อยกว่าขอบเขตที่กำหนดหรือไม่ รูปแบบที่เห็นบ่อยๆ ก็เช่น ตรวจสอบว่ารายได้ต่ำกว่าที่จะสามารถรับเข้าเป็นสมาชิกได้หรือไม่ก็อายุเกินที่จะทำงานหรือเปล่า เป็นต้น คอนโทรลนี้ก็นับว่ามีประโยชน์ไม่ยิ่งหย่อนไปกว่าคอนโทรลอื่นๆ ทีเดียว

<asp:RangeValidator ControlToValidate = "ชื่อฟอร์มที่ต้องการตรวจสอบ" MaximumValue = "จุดสูงสุด"
MinimumValue = "จุดต่ำสุด" ErrorMesage = "ข้อความที่ต้องการแสดงออกมาเมื่อตรวจสอบแล้วไม่ตรงกับเงื่อนไข"
runat = "server"/>


ซึ่งฟอร์มที่เราจะนำมาใช้ตรวจสอบต้องสร้างด้วยคอนโทรลที่เกี่ยวกับฟอร์ม โดยที่
  • พร็อพเพอร์ตี้ ControlToValidate ใช้กำหนดชื่อฟอร์มที่ต้องการตรวจสอบ
  • พร็อพเพอร์ตี้ Maximum Value ใช้กำหนดขอบเขตบน
  • พร็อพเพอร์ตี้ Maximum Value ใช้กำหนดขอบเขตล่าง
  • พร็อพเพอร์ตี้ ErrorMessage เป็นส่วนแสดงข้อความเมื่อข้อมูลที่กรอกมีค่าอยู่นอกช่วงที่กำหนด
ตัวอย่าง
<html>
<body>

<form runat="server">
Enter a date between 1/1/2002 and 5/31/2002:
<br />
<asp:TextBox id="tbox1" runat="server"/>
<br /><br />
<asp:Button Text="Submit" runat="server" />
<br /><br />
<asp:RangeValidator
ControlToValidate="tbox1"
MinimumValue="1/1/2002"
MaximumValue="5/31/2002"
Type="Date"
EnableClientScript="false"
Text="The date must be between 1/1/2002 and 5/31/2002!"
runat="server"/>
</form>

</body>
</html>

ผลแสดงออกมาดังนี้       ตัวอย่างที่ 2


RegularExpressionValidator
      คอนโทรลนี้ใช้ในการตรวจสอบว่าข้อมูลที่เรากรอกลงในฟอร์มนั้นตรงกับลักษณะที่เรากำหนดหรือไม่ รูปแบบที่เห็นบ่อยๆ ก็เช่น ฟอร์มที่เราใช้กรอกเบอร์โทรศัพท์ ซึ่งจำเป็นต้องมีตัวเลขแค่ 9 หลักเท่านั้น(รวมรหัสพื้นที่ด้วย) หรือรหัสไปรษณีย์ที่ต้องมีตัวเลขแค่ 5 หลักเท่านั้น เป็นต้น นอกจากนี้ยังสามารถใช้กับข้อมูลที่เป็นตัวอักษรที่เป็นข้อความได้ด้วย ไม่จำเป็นว่าต้องเป็นข้อมูลชนิดตัวเลขอย่างเดียว

<asp:RegularExpressionValidator ControlToValidate = "ชื่อฟอร์มที่ต้องการตรวจสอบ"
ValidationExpression = "^\d{9}$" ErrorMessage = "ข้อความที่ต้องการแสดงออกมาเมื่อตรวจสอบแล้วไม่ตรงกับเงื่อนไข"
runat = "server"/>


ซึ่งฟอร์มที่เราจะนำมาใช้ตรวจสอบต้องสร้างด้วยคอนโทรลที่เกี่ยวกับฟอร์ม โดยที่
  • พร็อพเพอร์ตี้ ControlToValidate ใช้กำหนดชื่อฟอร์มที่ต้องการตรวจสอบ
  • พร็อพเพอร์ตี้ ValidationExpression ใช้กำหนดรูปแบบของข้อมูลที่ต้องการให้ตรวจสอบ
  • พร็อพเพอร์ตี้ ErrorMessage เป็นส่วนแสดงข้อความเมื่อข้อมูลที่กรอกมีลักษณะไม่ตรงกับที่กำหนดใช้ กำหนดว่าหากเรากรอกข้อมูลไม่ตรงกันแล้วจะให้แสดงคำว่าอะไรออกมาทางหน้าเว็บเพจ
ตัวอย่าง
<script runat="server">
sub submit(sender As Object, e As EventArgs)
if Page.IsValid then
      lbl.Text="The page is valid!"
else
      lbl.Text="The page is not valid!"
end if
end sub
</script>

<html>
<body>

<form runat="server">
Enter a Th zip code:
<asp:TextBox id="txtbox1" runat="server" />
<br /><br />
<asp:Button text="Submit" OnClick="submit" runat="server" />
<br /><br />
<asp:Label id="lbl" runat="server" />
<br />
<asp:RegularExpressionValidator
ControlToValidate="txtbox1"
ValidationExpression="\d{5}"
EnableClientScript="false"
ErrorMessage="The zip code must be 5 numeric digits!"
runat="server" />
</form>

</body>
</html>

ผลแสดงออกมาดังนี้      


ValidationSummary
      คอนโทรลนี้จะทำหน้าที่เป็นตัวสรุปความผิดพลาดที่เกิดขึ้นทั้งหมด เพราะว่าเวลาเรากรอกข้อมูลลงฟอร์มเราคงไม่กรอกเพียงช่องเดียวหรอก โดยจะนำเอาข้อผิดพลาดทั้งหมดทุกคอนโทรลของ Validation Control มาแสดงให้หมดทีเดียวพร้อมกันเลย เพราะฉะนั้นการใช้งานคอนโทรลนี้ต้องมีการใช้งาน Validation Control อื่นๆ ด้วยภายในโปรแกรม ส่วนข้อความที่จะนำมาแสดงนั้นเป็นข้อความที่เรากำหนดไว้ในพร็อพเพอร์ตี้ ErrorMessage ในแต่ละคอนโทรลนั่นเอง

<asp:ValidationSummary Header Text = "ชื่อหัวข้อ" ShowSummary = "True" runat = "server"/>


จากตัวอย่างจะเป็นการใช้งานคอนโทรลชนิด Validation Control โดยที่
  • พร็อพเพอร์ตี้ Header Text จะใช้กำหนดชื่อหัวข้อ
  • พร็อพเพอร์ตี้ ShowSummary ใช้เพื่อกำหนดว่าจะให้นำเอาข้อมูลต่างๆ ที่ได้สรุปมานั้นแสดงบนหน้าเว็บเพจหรือไม่ ถ้า True ก็คือ ให้แสดงออกบนหน้าเว็บเพจ
ตัวอย่าง
<html>
<body>

<form runat="server">
<table>
<tr>
<td>
<table bgcolor="#b0c4de" cellspacing="10">
   <tr>
      <td align="right">Name:</td>
      <td><asp:TextBox id="txt_name" runat="server"/></td>
      <td>
      <asp:RequiredFieldValidator
      ControlToValidate="txt_name"
      ErrorMessage="Name"
      Text="*"
      runat="server"/>
      </td>
   </tr>
   <tr>
      <td align="right">Card Type:</td>
      <td>
      <asp:RadioButtonList id="rlist_type"
      RepeatLayout="Flow"
      runat="server">
      <asp:ListItem>Diners</asp:ListItem>
      <asp:ListItem>MasterCard</asp:ListItem>
      <asp:ListItem>Visa</asp:ListItem>
      </asp:RadioButtonList>
      </td>
      <td>
      <asp:RequiredFieldValidator
      ControlToValidate="rlist_type"
      ErrorMessage="Card Type"
      InitialValue=""
      Text="*"
      runat="server"/>
      </td>
   </tr>
   <tr>
      <td></td>
      <td><asp:Button id="b1" Text="Submit" runat="server"/></td>
      <td></td>
   </tr>
</table>
</td>
</tr>
</table>
<br />
<asp:ValidationSummary
HeaderText="You must enter a value in the following fields:"
DisplayMode="BulletList"
EnableClientScript="true"
runat="server"/>
</form>

</body>
</html>

ผลแสดงออกมาดังนี้       ตัวอย่างที่ 2



CustomValidator
      หากคอนโทรลทั้งหมดที่ผ่านมาไม่สามารถตรวจสอบเหตุการณ์ต่างๆ ที่เราต้องการได้ ไมโครซอฟท์อนุญาตให้คุณสร้างคอนโทรลประเภท Validation Control ขึ้นมาเองได้โดยต้องอยู่ในหลักของการสร้างคอนโทรลที่กำหนด

<script runat="server">
Sub user(source As object,args As ServerValidateEventArgs)
   if len(args.Value)<8 or len(args.Value)>16 then
      args.IsValid=false
   else
      args.IsValid=true
   end if
End Sub
</script>

<html>
<body>

<form runat="server">
<asp:Label runat="server" Text="Enter a username: " />
<asp:TextBox id="txt1" runat="server" />
<asp:Button Text="Submit" runat="server"/>
<br />
<asp:Label id="mess" runat="server"/>
<br />
<asp:CustomValidator
ControlToValidate="txt1"
OnServerValidate="user"
Text="A username must be between 8 and 16 characters!"
runat="server"/>
</form>

</body>
</html>


ผลแสดงออกมาดังนี้      
 
Tutorials ASP.NET
  ASP.NET
      What's ASP.NET
      Install ASP.NET
      Install IIS
      Set up IIS
      Virtual Directory
      การใช้งาน ASP.NET
      การแยกประโยคคำสั่ง
      คำสั่งในการตัดสินใจ
      คำสั่งในการทำซ้ำ
      Array
         Static Array
         Dynamic Array
      Collection
         ArrayList
         Hashtable
         SortedList
  ASP.NET Forms
      TextBox
      Button
      ViewState
  การรับส่งข้อมูล
      QueryString
      Form
      Property
  Controls
      HTML Controls
      Basic Web Controls
      Validation Controls
      DataList Controls
         XML Files
         Repeater
         Datalist
      Custom Control
  ASP.NET Database
      ADO.NET
      DataSet
         ติดต่อฐานข้อมูล
         เปิดฐานข้อมูล
         เลือกข้อมูล
         ใช้ข้อมูลที่เลือก
         ปิดการติดต่อ
         Example DataSet
      DataReader
         ติดต่อฐานข้อมูล
         เปิดฐานข้อมูล
         เลือกข้อมูล
         ใช้ข้อมูลที่เลือก
         ปิดการติดต่อ
         Example DataReader
      DB Connection


[ Users browsing page: 1 :Guest(s) ]

บทความต่างๆที่ปรากฏขึ้นใน ASPThai.Net เป็นบทความที่ได้มาจากการค้นคว้าและหาข้อมูลของผู้จัดทำซึ่งบทความในบางส่วนนั้นได้แหล่งข้อมูลมาจากหนังสือและบทความทางอินเตอร์เน็ต
ถ้าบทความที่ปรากฏขึ้นใน ASPThai.Net ผิดพลาดประการใดก็ขออภัยมา ณ ที่นี้ด้วย
"ทีมงาน ASPThai.Net อนุญาตให้นำบทความต่างๆภายใน ASPThai.Net ไปพิมพ์เพื่อเผยแพร่ต่อไปได้ และโปรดสร้างลิงค์ไปยัง http://www.aspthai.net ด้วยครับ"


This Site is Powered By ASPThai.Net Full Edition v1.
Copyright ฉ 2002-2005 ASPThai.Net All rights reserved.

.