概述 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