《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属性,能把一个页面划分成多个验证区域 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值