返回首页
当前位置: 主页 > 网络编程 > .Net实例教程 >

ASP.NET-验证器

时间:2020-01-14 16:17来源:知行网 编辑:麦田守望者

 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#或VB.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属性将它们置于相同的逻辑组中

以下示例描述了由365网址校的所有365网址生(分为四所房屋)填写的用于选举校长的表格。在这里,我们使用验证控件来验证用户输入。

这是设计视图中的表单:

设计视图中的表单

内容文件代码如下:

<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客户端编码具有两个方面: 客户端脚本 :它在浏览器上运行,从而加快了页面的...

猜你感兴趣