【ASP.NET】ASP.NET之数据验证控件

【引言】

验证可以有客户端和服务器段的验证。客户端的验证主要是用JavaScript脚本,效率高,响应时间短,但安全性不好;服务器段的验证主要是用C#语言在后台验证,安全高了,但每次提交都要把数据传到后台,太慢。


ASP.NET不仅把窗体的验证作为服务器控件引入,还使这些控件智能化。如果浏览器支持JavaScript,而ASP.NET可以发送JavaScript,验证就在客户端进行;如果客户机不支持用于验证的JavaScript,这些JavaScript就被忽略,验证就在服务器上进行。


【验证控件的种类及作用】

验证类型控件说明
必填字段验证
RequiredFieldValidator
确保用户不会跳过某一项输入。
比较验证
CompareValidator
将用户输入与一个常数值或者
另一个控件或特定数据类型的值
进行比较(使用小于、等于或大
于等比较运算符)。

范围验证
RangeValidator
检查用户的输入是否在指定的
上下限内。可以检查数字对、
字母对和日期对限定的范围。

正则表达式验证
RegularExpressionValidator
检查项与正则表达式定义的模
式是否匹配。此类验证使您能
够检查可预知的字符序列,如
电子邮件地址、电话号码、邮政
编码等内容中的字符序列。

自定义验证
CustomValidator
使用您自己编写的验证逻辑检查
用户输入。此类验证使您能够检
查在运行时派生的值。

验证总结
validationsummary以摘要的形式显示页上所有验
证程序的验证错误

1、RequiredFieldValidator控件

定义和用法

RequiredFieldValidator 控件用于使输入控件成为一个必选字段。

通过该控件,如果输入值的初始值未改变,那么验证将失败。默认地,初始值是空字符串 ("")

注释:输入值的开头和结尾的空格将在验证前被删除。

注释:InitialValue 不为输入控件设置默认值。它指示了您不希望用户在输入控件中输入的值。


属性

描述

BackColor

RangeValidator 控件的背景颜色

ControlToValidate

要验证的控件的 id

Display

验证控件的显示行为。

合法的值有:

· None - 验证消息从不内联显示。

· Static - 在页面布局中分配用于显示验证消息的空间。

· Dynamic - 如果验证失败,将用于显示验证消息的空间动态添加到页面。

EnableClientScript

布尔值,规定是否启用客户端验证。

Enabled

布尔值,规定是否启用验证控件。

ErrorMessage

当验证失败时,在 ValidationSummary 控件中显示的文本。

注释:如果未设置 Text 属性,文本也会显示在该验证控件中。

ForeColor

该控件的前景色。

id

控件的唯一 id。

InitialValue

规定输入控件的初始值(开始值)。默认是 ""。

IsValid

布尔值,指示关联的输入控件是否通过验证。

runat

规定该控件是一个服务器控件。必须设置为 "server"。

Text

当验证失败时显示的消息。

实例:

<html>
<body>

<form runat="server">
名称:<asp:TextBox id="name" runat="server" />
<br />
年龄:<asp:TextBox id="age" runat="server" />
<br /><br />
<asp:Button runat="server" Text="提交" />
<br /><br />
<asp:RequiredFieldValidator
ControlToValidate="name"
Text="name 姓名是必填的!"
runat="server" />
</form>

</body>
</html>

2、CompareValidator(比较验证)控件

定义和用法

CompareValidator 控件用于将由用户输入到输入控件的值与输入到其他输入控件的值或常数值进行比较。

注释:如果输入控件为空,则不会调用任何验证函数,并且验证将成功。使用 RequiredFieldValidator 控件使字段成为必选字段。

属性

描述

BackColor

CompareValidator 控件的背景颜色。

ControlToCompare

要与所验证的输入控件进行比较的输入控件。

ControlToValidate

要验证的输入控件的 ID。

Display

验证控件中错误信息的显示行为。

合法值是:

· None 验证消息从不内联显示。

· Static 在页面布局中分配用于显示验证消息的空间。

· Dynamic 如果验证失败,将用于显示验证消息的空间动态添加到页面。

EnableClientScript

布尔值,规定是否启用客户端验证。

Enabled

布尔值,规定是否启用验证控件。

ErrorMessage

当验证失败时在 ValidationSummary 控件中显示的文本。

注释:如果未设置 Text 属性,此文本将显示在验证控件中。

ForeColor

控件的前景颜色。

id

控件的唯一 ID。

IsValid

布尔值,指示由 ControlToValidate 指定的输入控件是否通过验证。

Operator

要执行的比较操作的类型。

运算符是:

· Equal

· GreaterThan

· GreaterThanEqual

· LessThan

· LessThanEqual

· NotEqual

· DataTypeCheck

runat

规定控件是服务器控件。必须设置为 "server"。

Text

当验证失败时显示的消息。

Type

规定要对比的值的数据类型。

类型有:

· Currency

· Date

· Double

· Integer

· String

ValueToCompare

一个常数值,该值要与由用户输入到所验证的输入控件中的值进行比较。

 

3、RangeValidator(范围验证)控件

验证输入是否在一定范围,范围用MaximumValue和MinimunVlaue来确定。

RangeValidator控件标准代码如下

<asp:RangeValidator ID="Vaidator_ID" runat="Server" ControlToValidate="要验证的控件ID"
                Type="String|Integer|Double|DateTime|Currency" MinimumValue="最小值" MaximumValue="最大值"
                ErrorMessage="错误信息" Display="Static|Dymatic|None">
占位符
 </asp:RangeValidator>
在以上代码中:
   用MinimumValue和MaximumValue来界定控件输入值得范围,用type来定义控件输入值的类型。

4、RegularExpresionValidator(正则表达式)控件

代码:

 <asp:RegularExpressionValidator ID="Validator_ID" runat="Server" ControlToValidate="要验证控件名"
               ValidationExpression="正则表达式" ErrorMessage="错误信息" Display="Static|Dymatic|None">
占位符
</asp:RegularExpressionValidator>

在以上标准代码中,ValidationExpression是重点,现在来看看它的构造:
在ValidationExpression中,不同的字符表示不同的含义:
星号"*":表示和其他表达式一起,表示容易组合;
方括号“[ ]”:用与定义可接受的字符。[abc123] 表示控件只能接受 a,b,c,1,2,3 这6个字符;[A-Z]表示任意大写字母;
反集合符号“ ^ ”:用于定义不可以接受的字符。[^a-h] 表示控件除了 a 到 h 8个字符外,都可以接受;
花括号“{ }”:定义必须输入的字符个数。{6}表示只能输入6个字符 ; {6,}表示必须输入6个以上,无上限 ; {2,6} 表示必须输入2至6个字符;但是花括号必须放在方括号后面,例如 [a-z]{4} 表示必须输入 4位a和z之间的任意字符。
小圆点“ . ”:用于代表任意字符。 例如 .{3,6}表示接受3到6个任意字符。
竖线“ | ” :用于表示 “或”的逻辑符号。例如 [1-9]{3,6}|[A-Za-z]{3} 表示可以接受 3到6个数字或者 3个字母。 (大小写都可以区别的哦)
小括号“()” :用于分块,与数字运算中的小括号作用类似。
斜线“ \ ” :若希望可以接受的字符包含上述特殊字符。例如 \([0-9]{3}\),表示输入格式为“(xxx)”的电话区号。

注意,在以上表达式中,引号不包括在内;
举例:正则表达式:".*[A-Z]"表示数字开头的任意字符组合其后接一个大写字母。


5、CustomValidator(自定义验证)控件

实例:在本例中,我们在 .aspx 文件中声明了两个 Label 控件,一个 TextBox 控件,一个 Button 控件,以及一个 CustomValidator 控件。user() 函数可检测输入值的长度。如果长度小于 8 或大于 16,将在 CustomValidator 控件中显示文本 "用户名必须介于 8 到 16 个字符之间!"。

<script  runat="server">
Sub user(source As object,args As ServerValidateEventArgs)
   if len(args.Value)<8 or len(args.Value)>16 then
    args.IsValid=false
   else
    args.IsValid=true
   end if
End Sub
</script>    

<html>
<body>

<form runat="server">
<asp:Label runat="server" Text="请输入用户名:" />
<asp:TextBox id="txt1" runat="server" />
<asp:Button Text="提交" runat="server"/>
<br />
<asp:Label id="mess" runat="server"/>
<br />
<asp:CustomValidator
ControlToValidate="txt1"
OnServerValidate="user"
Text="用户名必须介于 8 到 16 个字符之间!"
runat="server"/>
</form>

</body>
</html>

【补充】

可以通过Page的属性ClientTarget可以设置所有的验证控件是否会在客户端验证。只要将这个属性设置为UpLevel就可以了,DownLevel下,所有的验证都只会在服务器上执行了。默认情况下,大多数浏览器都是会在客户端验证的,所以我并不知道它的这个属性是不是默认UpLevel了。当然,如果要为单独的一个或几个验证控件设置的话,那么还是使用原先的EnableClientScript。

另外还增加了一个SetFoucsOnError属性。就是当出错的时候将焦点移到控件上。这样就不会使用户在点击了按钮之后因为没看到错误提示而在那发愣了。另外一个就是CustomValidator增加了ValidateEmptyText属性来让用户自定义验证控件在值为空时也验证。



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值