天天看点

《Programming ASP.NET》学习笔记(验证)

验证

ASP.NET支持一下验证控件:

RequiredFieldValidator 确保用户输入值

RangeValidator  确保输入的数值在指定的范围内

CompareValidator 比较用户输入和其他数值

RegularExpressionValidator 确定该值是否与某个正则表达式相匹配

CustomValidator  计算输入控件的值以确定它是否通过自定义的验证逻辑

RequiredFieldValidator

RequiredFieldValidator控件可确保用户为控件提供有效的数值

对每个须验证的区域,须添加RequiredFieldValidator控件

常用属性

ControlToValidate 获取或设置要验证的控件的ID

Display   获取或设置验证控件的错误信息的显示行为

InitialValue  获取或设置验证器的基值,默认值为空引用

SetFocusOnError 获取或设置在验证失败时是否将焦点设置到ControlToValidate指定的控件上

例如:

<asp:DropDownList ID="ddl" runat="server">

 <asp:ListItem>pick one</asp:ListItem>

 <asp:ListItem>dddd</asp:ListItem>

 <asp:ListItem>cccc</asp:ListItem>

</asp:DropDownList>

<asp:RequiredFieldValidator ID="rfv" runat="server" ControlToValidate="ddl" Display="Static" InitialValue="pick one">choose one</asp:RequiredFieldValidator>

The Summary Control

ValidationSummary控件可以显示 Web 页上所有验证错误的列表

显示在页面一个段落或弹出的信息框中

常用属性

DisplayMode 获取或设置验证摘要的显示模式

HeaderText 获取或设置将在验证摘要页的标题节中出现的文本

ShowSummary 是否内联显示验证摘要

ShowMessageBox 是否在消息框中显示验证摘要

利用ShowSummary和ShowMessageBox可以设置错误信息的显示方式(可同时使用)

还需要为其他验证控件添加ErrorMessage属性,指示要报告的错误信息

例如:

<asp:TextBox ID="tb" runat="server" Width="183px" Height="68px" TextMode="MultiLine"></asp:TextBox>

<asp:RequiredFieldValidator ID="rfv3" runat="server" ControlToValidate="tb" Display="Static" Width="100%"  ErrorMessage="provide">provide</asp:RequiredFieldValidator>

<asp:ValidationSummary ID="vs" runat="server" DisplayMode="BulletList"  HeaderText="bug" ShowSummary="true" ShowMessageBox="true"/>

The Compare Validator

CompareValidator控件可用于比较用户输入和其他数值

常用属性

ControlToValidate 获取或设置要验证的控件的ID

Type  获取或设置比较的两个值的数据类型。默认值为 string

Operator 获取或设置验证中使用的比较操作。默认值为 Equal

ValueToCompare 获取或设置要比较的值

ControlToCompare 获取或设置用于比较的输入控件的 ID

Operator属性可以是以下操作

DataTypeCheck  检查两个控件的数据类型是否有效

Equal   检查两个控件彼此是否相等

GreaterThan  检查一个控件是否大于另一个控件

GreaterThanEqual 检查一个控件是否大于或等于另一个控件

LessThan  检查一个控件是否小于另一个控件

LessThanEqual  检查一个控件是否小于或等于另一个控件

NotEqual  检查两个控件彼此是否不相等

Operator属性可以是以下值

枚举  值 数据类型

String  0 String

Integer  1 Integer

Double  2 Double

Date  3 DateTime

Currency 4 Currency

例如:

<asp:TextBox ID="tb2" runat="server"></asp:TextBox>

<asp:RequiredFieldValidator ID="rfv4" runat="server" ErrorMessage="enter" ControlToValidate="tb2"></asp:RequiredFieldValidator>

<asp:CompareValidator ID="cv1" runat="server" ErrorMessage="gtearer than 0" ControlToValidate="tb2" Type="Integer" Operator="GreaterThan" ValueToCompare="0"></asp:CompareValidator>

由于CompareValidator控件对于Null或者空值总是返回true,所以需要RequiredFieldValidator控件确保用户输入值

检查输入类型

CompareValidator控件可以检查输入类型

检查输入类型不需要ValueToCompare属性,同时把Operator属性设为DataTypeCheck,Type属性为对应要检查的类型的值

例如:

<asp:CompareValidator ID="cv1" runat="server" ErrorMessage="Integer" ControlToValidate="tb2" Type="Integer" Operator="DataTypeCheck"></asp:CompareValidator>

与其他控件比较

常用于验证两次输入密码是否相同

使用ControlToValidate设置要验证的控件的ID,使用ControlToCompare设置用于比较的输入控件的ID,进行两个控件之间输入值的比较

例如:

password

<asp:TextBox ID="tb3" runat="server" TextMode="Password"></asp:TextBox>

<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ErrorMessage="enter" ontrolToValidate="tb3"></asp:RequiredFieldValidator>

password2

<asp:TextBox ID="tb4" runat="server" TextMode="Password"></asp:TextBox>

<asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ErrorMessage="enter" ControlToValidate="tb4"></asp:RequiredFieldValidator>

<asp:CompareValidator ID="CompareValidator2" runat="server" ErrorMessage="enter" ControlToValidate="tb3" ControlToCompare="tb4" Operator="Equal"></asp:CompareValidator>

范围检查

RangeValidator控件可以确保输入的数值在指定的范围内

范围可以是一对数字,字符或日期,可以使用常量或其他控件提供的以比较值作为范围的边界

常用属性

ControlToValidate 获取或设置要验证的控件的ID

Type  获取或设置比较的两个值的数据类型。默认值为 string

MaximumValue 获取或设置要验证的控件的值,该值必须小于或等于此属性的值

MinimumValue 获取或设置要验证的控件的值,该值必须大于或等于此属性的值

例如:

<asp:TextBox ID="tb5" runat="server"></asp:TextBox>

<asp:RangeValidator ID="rv1" runat="server" ErrorMessage="between 1 - 5" Type="Integer" MinimumValue="1" MaximumValue="5" ControlToValidate="tb5"></asp:RangeValidator>

正则表达式

RegularExpressionValidator控件能确定该值是否与某个正则表达式相匹配

常用属性

ControlToValidate 获取或设置要验证的控件的ID

ValidationExpression 获取或设置被指定为验证条件的正则表达式

例如:

<asp:TextBox ID="tb6" runat="server"></asp:TextBox>

<asp:RegularExpressionValidator ID="rev1" runat="server" ErrorMessage="error" ControlToValidate="tb6" ValidationExpression="/d{6}"></asp:RegularExpressionValidator>

自定义验证

CustomValidator控件可以自定义验证方法

常用属性

ControlToValidate 获取或设置要验证的控件的ID

EnableClientScript 是否启用客户端验证,默认为true

ValidateEmptyText 是否应该验证空文本,默认为true

ClientValidationFunction获取或设置用于验证的自定义客户端脚本函数的名称

OnServerValidate 为 CustomValidator 控件引发 ServerValidate 事件

例如:

<asp:TextBox ID="tb5" runat="server"></asp:TextBox>

<asp:CustomValidator ID="cv1" runat="server" ErrorMessage="error" EnableClientScript="true" ValidateEmptyText="false" ClientValidationFunction="check" ControlToValidate="tb5" OnServerValidate="ServerValidate"></asp:CustomValidator>

<script type="text/javascript">

function check(source, args) {

 args.IsValid = false;

 if (args.Value > 0) args.IsValid = true;

}

</script>

服务器端验证

protected void ServerValidate(object source, ServerValidateEventArgs args)

{

    args.IsValid = false;

    if (Int32.Parse(args.Value) > 0)

    {

        args.IsValid = true;

    }

}

验证组

控件的ValidationGroup属性可以设置验证控件所属的验证组的名称

为每组控件(包括提交按钮)设置相同的ValidationGroup属性,能把一个页面划分成多个验证区域 

继续阅读