摘要
ASP.NET功能強大的一種體現就是具有豐富的Web控制項,這裏我們談談其中的一種—驗證控制項。它總結了各種Web資料校驗方式,設計成了今天這種通用的ASP.NET控制項形式。

--------------------------------------------------------------------------------

目錄
1. 驗證控制項簡介
2. 驗證控制項的使用方法
3. 小結

--------------------------------------------------------------------------------

1. 驗證控制項簡介
顧名思義,驗證控制項就是校驗用戶輸入資料正確性的控制項,如用戶在文本框中輸入資料後,便顯示一條提示資訊,表明了校驗的資料是不合法的。驗證過程既可以在伺服器上執行,也可以在客戶機上執行,在用戶端運行的校驗代碼是資料提交之前被執行的,因此可以提高程式的性能。ASP.NET的驗證控制項可以進行多種校驗,如數據範圍檢查、資料間的比較和自定義校驗等等,下面的內容將會逐一介紹這些驗證控制項。

--------------------------------------------------------------------------------

2. 驗證控制項的使用方法
RequiredFieldValidator控制項
當頁面上的控制項要求必須輸入資料時,RequiredFieldValidator就起作用了,ControlToValidate屬性選擇需要驗證的控制項,而ErrorMessage屬性則是校驗不合法後顯示的錯誤提示資訊。
<head runat="server">
    <title>RequiredFieldValidator Example</title>
</head>
<body>
    <form id="form1" runat="server">
        Name:
        <asp:TextBox id=TextBox1 runat=server ></asp:TextBox>
       
        <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ErrorMessage="Please enter your name" ControlToValidate="TextBox1" />
        <asp:Button id="Button1" runat="server" Text="Button" />
    </form>
</body>
</html>

CompareValidator控制項
CompareValidator控制項是用來比較兩個輸入控制項之間的資料一致性的,同時也可以用來校驗控制項中內容的資料類型:如整形、字串型等。ControlToCompare和ControlToValidate屬性用來設置進行比較的兩個控制項。
<head runat="server">
    <title>CompareValidator Example</title>
</head>
<body>
    <form id="form1" runat="server">
    Password:
    <asp:TextBox id=txtPwd runat=server TextMode=Password></asp:TextBox>
    Confirm:
    <asp:TextBox id=TxtCfm runat=server TextMode=Password></asp:TextBox>
    <asp:Button id=Button2 runat=server Text=Button />
    <asp:CompareValidator id=CompareValidator1 runat=server ErrorMessage="Password Error!"
    ControlToValidate=TxtCfm ControlToCompare=txtPwd></asp:CompareValidator>
    </form>
</body>

RangeValidator控制項
RangeValidator控制項可以用來判斷用戶輸入的值是否在某一特定範圍內,屬性MaximumValue和MinimumValue用來設定範圍的最大和最小值。
<head runat="server">
    <title>RangeValidator Example</title>
</head>
<body>
    <form id="form1" runat="server">
        Age:
        <asp:TextBox id=TxtAge runat=server></asp:TextBox>
        <asp:RangeValidator id=RangeValidator1 runat=server ControlToValidate=TxtAge
        ErrorMessage="Age Error!" MaximumValue=99 MinimumValue=1></asp:RangeValidator>
    </form>
</body>

RegularExpressionValidator控制項
RegularExpressionValidator控制項可以判斷用戶輸入的運算式是否正確,如電話號碼、郵編、URL等,ControlToValidate屬性選擇需要驗證的控制項,ValidationExpression屬性則編寫需要驗證的運算式的樣式,下面的例子就是一段校驗郵編的代碼。
<head runat="server">
    <title>RegularExpressionValidator Example</title>
</head>
<body>
    <form id="form1" runat="server">
    Postal Code:
    <asp:TextBox id=TxtPostalCode runat=server></asp:TextBox>
    <asp:RegularExpressionValidator id=RegularExpressionValidator1 runat=server
       ControlToValidate=TxtPostalCode ErrorMessage="Postal Code Error!"   
       ValidationExpression={d6}></asp:RegularExpressionValidator>
    </form>
</body>

CustomValidator控制項
CustomValidator控制項用於執行用戶自定義的驗證,這種校驗既可以是伺服器端的也可以是用戶端的,下面的代碼就是使用用戶端驗證郵編的例子。
<head runat="server">
    <title>CustomValidator Example</title>
</head>
<body>
    <form id="form1" runat="server">
    Postal Code:
    <asp:TextBox id=TextBox1 runat=server></asp:TextBox>
    <asp:CustomValidator id=CustomValidator1 runat=server ControlToValidate=TextBox1 
         ErrorMessage=CustomValidator  ClientValidationFunction=ClientValidate></asp:CustomValidator>
    </form>
   
    <script language=vbscript>
       Sub ClientValidate(source, arguments)
          If isnumeric(arguments.Value ) and len(arguments.Value)=6 Then
             arguments.IsValid=true
          Else
             arguments.IsValid=false
          End If
       End Sub   
    </script>
</body>

ValidationSummary控制項
這個控制項會將頁面中所有的校驗錯誤輸出為一個列表,列表的顯示方式由DisplayMode屬性設置。
<head runat="server">
    <title>ValidationSummary Example</title>
</head>
<body>
    <form id="form1" runat="server">
    Age:
    <asp:TextBox id=TxtAge runat=server></asp:TextBox>
    <asp:RequiredFieldValidator id=RequiredFieldValidator1 runat=server
    ControlToValidate=TxtAge ErrorMessage="Age Error!" Display=None></asp:RequiredFieldValidator>
    <BR />
    Postal Code:
    <asp:TextBox id=TxtPostalCode runat=server></asp:TextBox>
    <asp:RequiredFieldValidator id=RequiredFieldValidator2 runat=server
    ControlToValidate=TxtPostalCode ErrorMessage="Postal Code Error!"
    Display=None></asp:RequiredFieldValidator>

    <asp:Button id=Button1 runat=server Text=Button />
    <asp:ValidationSummary id=ValidationSummary1 runat=server
    HeaderText="You must enter a value in the following fields" />
    </form>
</body>


--------------------------------------------------------------------------------

3. 小結
以上內容僅是ASP.NET驗證控制項的簡單介紹,使用這些控制項熟練後便可以縮短開發時間,更能夠省去大量的編寫JavaScript的工作。

goodlucky 發表在 痞客邦 PIXNET 留言(0) 人氣()