背景:
阅读新闻

asp.net2.0 with c#2.0 学习笔记之validation控件

  作者: 今日评论: [字体: ]

概述

validation 控件主要是为了验证用户输入内容的。而用户容易犯的错误是:

1、忽略重要的内容,让文本框空着

2、为了应付,瞎填,乱填就想提交

3、用户想认真填写,但是填写的内容不符合格式要求。

4、别用用心之人,会尝试输入一些不安全的代码。

.net2.0提供了5种validation 控件来解决以上问题:

1、RequiredFieldValidator           验证输入内容是否为空。

2、RangeValidator                        验证输入内容是否为特定范围内的的数值,字母或日期

3、CompareValidator                   验证当期输入框内的内容是否和另外一个输入控件内容相匹配

4、RegularExpressionValidator   验证输入内容是否满足特定的正则表达式规则

5、CustomValidator                     调用编程者自己定义的验证程序

任何一个控件都可以绑定到一个输入控件上,一个输入控件可以同时跟几个验证控件绑定。

需要注意的是:当你在使用控件RangeValidator,CompareValidator或RegularExpressionValidator的时候,验证过程都会将输入内容为空看做是正确的,并通过验证。如果你不想这样,只能加一个RequiredFieldValidator控件,保证输入内容不是空的。

和其他web控件一样,你添加一个验证控件到表单中的时候也用

<asp:ControlClassName />

顺便提一下,还有个验证控件:ValidationSummary   它不是真正去验证什么,而是通过它可以提供一个列表来列出整个页面的所有验证错误信息。

工作过程

当用户填好表单后就单击按钮进行提交。而每个按钮都有个属性:CauseValidation ,它的值可以是true或false.

当按钮的CauseValidation属性的值是false的时候,用户单击按钮后不会进行任何验证,数据直接提交到服务器。

当然了,当CauseValidation的属性值为true的时候(默认值),用户单击这个按钮asp.net会自动地去验证这个页面的所有验证控件。当任何一个验证控件验证的结果出现没有通过验证的状况时,asp.net会阻止提交后的处理程序,并显示出错误信息。

客户端的验证

在许多最新的浏览器中(包括IE5.0及以后的版本,Firefox),asp.net会自动在客户端页面中插入javascript代码去验证,在进行数据提交之前就会进行验证,并提示错误信息。

不过,即使在客户端验证都通过的情况下,在服务端仍然进行验证过程。这是为了提防某些人将客户端页面进行修改,删除验证javascript代码后进行提交。

Validator 类

validation 控件属于 System.Web.UI.WebControls 命名空间(namespace)继承于 BaseValidator 类。

BaseValidator 的属性如下:

ControlToValidate       指定该控件所要验证的输入控件id

ErroMessage               验证没有通过的时候,显示的错误信息

ForeColor                    错误信息的显示颜色

Display                        错误信息的显示方式,其值有三个:Dynamic 或 Static,None 中文意思为动态和静态, 所谓动态就是隐藏的错误信息并不占位,当发生验证失败的时候会出现错误信息。而静态的,就是错误信息在没有显示的时候也占位,只是显示与不显示进行转换而已。两者的区别就是错误信息在显示前占位与否。None,表示无论是否通过了验证与否,都不显示错误信息。

IsValid     只读,其值为true或false反映该控件是否成功通过验证。

Enabled 当值为false的时候,该验证控件不起作用,默认为true.

EnableClientSideScript   当设置为true,asp.net会自动在客户端插入相应的javascript和DHTML代码进行客户端的验证,前提是客户端浏览器要支持。

当使用一个验证控件的时候,你只需要对ControlToValidate 和ErroMessage属性进行相关设置即可。当然对五种不同的验证控件,你需要注意它们需要一些不同额外的设置:

RequiredFieldValidator      不需要

RangeValidator                  MaximumValue,MinimumValue,Type

CompareValidator              ControlToCompare,Operator,Type,ValueToCompare

RegularExpressionValidator   ValidationExpression

CustomValidator                 ClientValidationFunction,ServerValidateEvent

由于各验证控件会产生错误信息,错误信息需要占位,当我们在排版的时候没有那么多的地方 放错误信息的时候,我们又需要怎么做呢?

幸好有个控件ValidationSummary可以解决这个问题:

将<asp:ValidationSummary id="Errors" runat="server" /> 放在适当的位置,当验证的时候,它将所有的错误信息依次做列表显示。

ValidationSummary也拥有很多属性:

HeaderText          可以理解为标题文本,比如设置为“本次产生如下错误:”

ForeColor             文本的颜色

DisplayMode        BulletList(default),List,Paragraph.

ShowMessageBox     true,false 如果设置为ture,那么所有的错误信息将以弹出警告的方式显示。不推荐使用。

--------------------------------------------------------------------

mikebai注:

验证控件的Display属性

成员名称   说明    
    Dynamic   验证失败时动态添加到页面中的验证程序内容。控件在页面上不占位置的,只有出了错误才动态显示出来。
    None   从不内联显示的验证程序内容。      
    Static   作为页面布局的物理组成部分的验证程序内容。   控件在页面上是永远要占个位置的       
 
注:在客户端页面 查看代码 可以看到
<span id="f_ctl1" style="color:Red;display:none;">errinfo</span>
<span id="f_ctl2" style="color:Red;visibility:hidden;">errinfo</span>
display:none;-->Dynamic  
Dynamicvisibility:hidden;-->Static
其实就是控制显示的式样


 

来源:http://hi.baidu.com/lovestroys/blog/item/4f13d2135fc265045aaf53f5.html
录入日期:[2010/03/11 17:21:00]
收藏 推荐 打印 | 录入:mikebai | 阅读:
文章评论      
正在加载评论列表...
评论关闭