天天看點

ASP.NET中驗證控件的使用

前言:

    前幾日,無奈用JS判斷控件的有效性,發現的确是一件費力、費神的事情!特别是針對郵件格式、郵政編碼等的關于正規表達式的JS驗證(其中涉及正規表達式的比較等,較煩~)。其實對于這些常用的控件有效性驗證,在Asp.Net中有單獨的驗證控件可供使用。他們可以滿足一般的,諸如非空,範圍、比較等的驗證。

驗證控件:

   Asp.Net中内置的驗證控件有:RequiredFieldValidation、RangeValidation、RegularExpressValidation、CompareValidation、CustomValidation和ValidationSummary等六種。其中使用者自定義驗證控件,由于并不非常常用(要自定義很多成分,包括函數等),在此文不予論述。

   簡單的驗證界面如下(Design視圖):

ASP.NET中驗證控件的使用

 如圖展示了選取環境,右邊紅色字型為驗證控件的ErrorMessage資訊。設計的環境布置如下:

1) RequiredFieldValidation控件,其ControlToValidate屬性為姓名對應文本框。對于ControlToValidate屬性,每一個驗證控件均對應一個,作為驗證的主體;

2)RangeValidation控件, 其ControlToValidate屬性為年齡對應文本框;

3) CompareValidation控件, 其ControlToValidate屬性為密碼确認對應文本框。同時還有一個容易和ControlToValidate屬性相混淆的屬性:ControlToCompare屬性,其對應密碼對應文本框。區分:的要點即是厘清主體,此時驗證的主體是密碼确認對應框,在用operator時(等于、大于、小于),是比較的主體,和被比較的文本框相比較,這裡即是密碼對應文本框。

4)RegularExpressValidation控件, 其ControlToValidate屬性為郵箱對應文本框;

5) ValidationSummary控件,它不具備ControlToValidate屬性;

其對應的前台代碼為:

<head runat="server">

    <title>驗證控件的示範頁面</title>

    <script type ="text/javascript" >

    // Description: 通過逐個示範驗證控件的使用,作為複習

   // CopyRight: http://www.cnblogs.com/yangmingming

   // Notes: 采用一張模拟使用者表的例子驗證

   </script>

</head>

<body>

    <form id="form1" runat="server">

    <div>

       姓名: <asp:TextBox ID="txtRequiredField" runat="server"></asp:TextBox>

        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 

            ErrorMessage="姓名不能為空!" ControlToValidate="txtRequiredField"></asp:RequiredFieldValidator>

            <br/>

            年齡:<asp:TextBox ID="txtRange" runat="server"></asp:TextBox>

        <asp:RangeValidator ID="RangeValidator1" runat="server" 

            ErrorMessage="年齡不在規定範圍内!" ControlToValidate="txtRange" MaximumValue="100" 

            MinimumValue="0" Type="Integer"></asp:RangeValidator>

        <br />

        密碼:<asp:TextBox ID="txtPassword" runat="server"></asp:TextBox>

        密碼确認:<asp:TextBox ID="txtPasswordConfirm" runat="server"></asp:TextBox>

        <asp:CompareValidator ID="CompareValidator1" runat="server" 

            ErrorMessage="密碼前後輸入,不一緻!" ControlToCompare="txtPassword" 

            ControlToValidate="txtPasswordConfirm"></asp:CompareValidator>

            <br />

            郵箱:<asp:TextBox ID="txtMail" runat="server"></asp:TextBox>

        <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 

            ErrorMessage="郵箱格式不符!" ControlToValidate="txtMail" 

            ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>

        <asp:ValidationSummary ID="ValidationSummary1" runat="server" 

            HeaderText="驗證資訊彙總" />

         <br />   

        <asp:Button ID="btnSubmit" runat="server" Text="送出" onclick="btnSubmit_Click" /> 

    </div>

    </form>

</body>

</html>

當文本框的輸入不符時,出現界面為:

ASP.NET中驗證控件的使用

 附:

      對于所有RequiredFieldValidation控件,當其隻針對姓名框時,當其餘框為空時,它們對應的驗證控件均失效。 可以認為除RequiredFieldValidation控件,其餘控件都要在此控件基礎上才能起作用。

ASP.NET中驗證控件的使用

   綜述之,把驗證控件的使用綜合起來,示範各個驗證控件的使用方法,為以後的驗證控件使用做一複習,呵呵~

ASP.NET中驗證控件的使用

繼續閱讀