mikebai.com

  • Home
  • dev
  • DotNET
  • M365
  • 搞笑
  • 杂七杂八
  • FocusDict
個人BLOG
it developer
  1. Main page
  2. DotNET
  3. Main content

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

2010-03-11 97hotness 0likes 0comments

概述


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     &n

Tag: Nothing
Last updated:2010-03-11

mikebai

This person is a lazy dog and has left nothing

Like
< Last article
Next article >

COPYRIGHT © 2025 mikebai.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang