返回首頁
當前位置: 主頁 > 網絡編程 > .Net實例教程 >

ASP.NET-驗證器

時間:2020-01-14 16:17來源:知行網www.f1globe.com 編輯:麥田守望者

 ASP.NET驗證控件驗證用戶輸入數據,以確保不會存儲無用,未經身份驗證或矛盾的數據。

ASP.NET提供以下驗證控件:

  • RequiredFieldValidator
  • RangeValidator
  • CompareValidator
  • RegularExpressionValidator
  • CustomValidator
  • 驗證摘要

BaseValidator類別

驗證控件類是從BaseValidator類繼承的,因此它們繼承了其屬性和方法。因此,有助于查看此基類的屬性和方法,這對于所有驗證控件都是通用的:

會員 描述
ControlToValidate 指示要驗證的輸入控件。
顯示 指示錯誤消息的顯示方式。
EnableClientScript 指示是否進行客戶端驗證。
已啟用 啟用或禁用驗證器。
錯誤信息 指示錯誤字符串。
文本 如果驗證失敗,將顯示錯誤文本。
已驗證 指示控件的值是否有效。
SetFocusOnError 它指示在控件無效的情況下,焦點是否應切換到相關的輸入控件。
驗證組 多個驗證器的邏輯組,此控件所屬。
驗證() 此方法重新驗證控件并更新IsValid屬性。

RequiredFieldValidator控件

RequiredFieldValidator控件確保必填字段不為空。通常將其綁定到文本框以強制輸入文本框。

該控件的語法如下:

<asp:RequiredFieldValidator ID="rfvcandidate"     runat="server" ControlToValidate ="ddlcandidate"    ErrorMessage="Please choose a candidate"     InitialValue="Please choose a candidate">     </asp:RequiredFieldValidator>

RangeValidator控制

RangeValidator控件驗證輸入值是否落在預定范圍內。

它具有三個特定的屬性:

性質 描述
類型 它定義了數據的類型。可用值包括:貨幣,日期,雙精度,整數和字符串。
最小值 它指定范圍的最小值。
最大值 它指定范圍的最大值。

該控件的語法如下:

<asp:RangeValidator ID="rvclass" runat="server" ControlToValidate="txtclass"     ErrorMessage="Enter your class (6 - 12)" MaximumValue="12"     MinimumValue="6" Type="Integer">     </asp:RangeValidator>

CompareValidator控件

CompareValidator控件將一個控件中的值與固定值或另一個控件中的值進行比較。

它具有以下特定屬性:

性質 描述
類型 它指定數據類型。
控制比較 它指定要比較的輸入控件的值。
價值比較 它指定要比較的常數值。
操作員 它指定比較運算符,可用值為:Equal,NotEqual,GreaterThan,GreaterThanEqual,LessThan,LessThanEqual和DataTypeCheck。

控件的基本語法如下:

<asp:CompareValidator ID="CompareValidator1" runat="server"     ErrorMessage="CompareValidator">     </asp:CompareValidator>

RegularExpressionValidator

RegularExpressionValidator允許通過與正則表達式的模式進行匹配來驗證輸入文本。正則表達式在ValidationExpression屬性中設置。

下表總結了正則表達式的常用語法構造:

角色逃生 描述
\ b 匹配一個退格鍵。
\ t 匹配標簽。
\ r 匹配回車符。
\ v 匹配垂直制表符。
\F 匹配換頁。
\ n 匹配新行。
\ 轉義符。

除了單個字符匹配之外,還可以指定可以匹配的一類字符,稱為元字符。

元字符 描述
。 匹配\ n以外的任何字符。
[A B C D] 匹配集合中的任何字符。
[^ abcd] 排除集合中的任何字符。
[2-7a-mA-M] 匹配范圍內指定的任何字符。
\ w 匹配任何字母數字字符和下劃線。
\ W 匹配任何非單詞字符。
\ s 匹配空格字符,例如空格,制表符,換行符等。
\ S 匹配任何非空白字符。
\ d 匹配任何十進制字符。
\ D 匹配任何非十進制字符。

可以添加量詞以指定出現字符的次數。

量詞 描述
* 零個或多個匹配項。
+ 一或多個比賽。
? 零或一匹配。
{N} N個匹配項。
{N,} N個或更多匹配項。
{N,M} 在N和M場比賽之間。

該控件的語法如下:

<asp:RegularExpressionValidator ID="string" runat="server" ErrorMessage="string"    ValidationExpression="string" ValidationGroup="string">     </asp:RegularExpressionValidator>

CustomValidator

CustomValidator控件允許為客戶端和服務器端驗證編寫特定于應用程序的自定義驗證例程。

客戶端驗證通過ClientValidationFunction屬性完成。客戶端驗證例程應使用瀏覽器可以理解的腳本語言編寫,例如JavaScript或VBScript。

必須從控件的ServerValidate事件處理程序中調用服務器端驗證例程。服務器端驗證例程應使用任何.Net語言編寫,例如C;騐B.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 style="width: 66%;">           <tr>          <td class="style1" colspan="3" align="center">          <asp:Label ID="lblmsg"              Text="President Election Form : Choose your president"              runat="server" />          </td>       </tr>        <tr>          <td class="style3">             Candidate:          </td>           <td class="style2">             <asp:DropDownList ID="ddlcandidate" runat="server"  style="width:239px">                <asp:ListItem>Please Choose a Candidate</asp:ListItem>                <asp:ListItem>M H Kabir</asp:ListItem>                <asp:ListItem>Steve Taylor</asp:ListItem>                <asp:ListItem>John Abraham</asp:ListItem>                <asp:ListItem>Venus Williams</asp:ListItem>             </asp:DropDownList>          </td>           <td>             <asp:RequiredFieldValidator ID="rfvcandidate"                 runat="server" ControlToValidate ="ddlcandidate"                ErrorMessage="Please choose a candidate"                 InitialValue="Please choose a candidate">             </asp:RequiredFieldValidator>          </td>       </tr>        <tr>          <td class="style3">             House:          </td>           <td class="style2">             <asp:RadioButtonList ID="rblhouse" runat="server" RepeatLayout="Flow">                <asp:ListItem>Red</asp:ListItem>                <asp:ListItem>Blue</asp:ListItem>                <asp:ListItem>Yellow</asp:ListItem>                <asp:ListItem>Green</asp:ListItem>             </asp:RadioButtonList>          </td>           <td>             <asp:RequiredFieldValidator ID="rfvhouse" runat="server"                 ControlToValidate="rblhouse" ErrorMessage="Enter your house name" >             </asp:RequiredFieldValidator>             <br />          </td>       </tr>        <tr>          <td class="style3">             Class:          </td>           <td class="style2">             <asp:TextBox ID="txtclass" runat="server"></asp:TextBox>          </td>           <td>             <asp:RangeValidator ID="rvclass"                 runat="server" ControlToValidate="txtclass"                 ErrorMessage="Enter your class (6 - 12)" MaximumValue="12"                 MinimumValue="6" Type="Integer">             </asp:RangeValidator>          </td>       </tr>        <tr>          <td class="style3">             Email:          </td>           <td class="style2">             <asp:TextBox ID="txtemail" runat="server" style="width:250px">             </asp:TextBox>          </td>           <td>             <asp:RegularExpressionValidator ID="remail" runat="server"                 ControlToValidate="txtemail" ErrorMessage="Enter your email"                 ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*">             </asp:RegularExpressionValidator>          </td>       </tr>        <tr>          <td class="style3" align="center" colspan="3">             <asp:Button ID="btnsubmit" runat="server" onclick="btnsubmit_Click"                 style="text-align: center" Text="Submit" style="width:140px" />          </td>       </tr>    </table>    <asp:ValidationSummary ID="ValidationSummary1" runat="server"        DisplayMode ="BulletList" ShowSummary ="true" HeaderText="Errors:" /> </form>

提交按鈕后面的代碼:

protected void btnsubmit_Click(object sender, EventArgs e) {    if (Page.IsValid)    {       lblmsg.Text = "Thank You";    }    else    {       lblmsg.Text = "Fill up all the fields";    } }
------分隔線----------------------------
標簽(Tag):
------分隔線----------------------------
推薦內容
  • ASP.NET-數據庫訪問

    ASP.NET允許訪問和使用以下數據源: 數據庫(例如,Access,SQL Server,Oracle,MySQ...

  • ASP.NET-驗證器

    ASP.NET驗證控件驗證用戶輸入數據,以確保不會存儲無用,未經身份驗證或矛盾的數據。 ...

  • ASP.NET-管理狀態

    超文本傳輸協議(HTTP)是無狀態協議。 當客戶端與服務器斷開連接時,ASP.NET引擎將丟...

  • ASP.NET-指令

    ASP.NET指令是用于指定可選設置的指令,例如注冊自定義控件和頁面語言。 這些設置描述...

  • ASP.NET-基本控件

    在本章中,我們將討論ASP.NET中可用的基本控件。 按鈕控制 ASP.NET提供三種類型的按鈕...

  • ASP.NET-客戶端

    ASP.NET客戶端編碼具有兩個方面: 客戶端腳本 :它在瀏覽器上運行,從而加快了頁面的...

猜你感興趣
99久久免费高清热精品