验证控件综述
验证控件包括:RequiredFieldValidator(必填)、RangeValidator(范围)、RegularExpressionValidator(正则表达式)、CompareValidator(比较与类型)、CustomValidator(自定义)、ValidationSummary(信息提示汇总),总共六个验证控件。
验证控件的基本属性:
ControlToValidate:设置需要被验证的控件,必须设置,否则无法通过编译。ValidationSummary无此属性。
Text属性:除了汇总控件ValidationSummary外都有此属性。作用是显示在控件上的信息,如果没有设置此属性,那么在控件上的显示信息将会被ErrorMessage属性设置的值所替代。Text的值如果被设置,那么验证控件上将一直显示Text的值(验证提示的时候),不论ErrorMessage属性的值是否被设置,除非编码改变它。
ErrorMessage属性:除了汇总控件ValidationSummary外都有此属性。此属性值将在当被验证的控件超出条件时显示,但是当验证控件设置了Text属性,那么ErrorMessage的属性值将无法在该验证控件上显示(此时验证控件显示的还是Text的值),除非该验证控件和汇总控件ValidationSummary结合使用,ErrorMessage属性值将会在汇总控件ValidationSummary上显示出来。
ValidationGroup属性:此属性的作用是将验证控件与被验证控件群组,汇总控件只显示群组中的验证提示信息(验证未通过的)。这样可以不影响其他控件的验证或使用。全部验证控件与其它的一些控件都有此属性。如:ButtonBox,TextBox等等。此属性的设置一般发生在有多个汇总控件ValidationSummary的页面。
SetFocusOnError属性:当设置为true时,RequiredFieldValidator能自动把光标定位到出错的控件。
Display属性:设置为Dynamic可以动态占用空间。
注意:
1. 页面postback的时候所有的验证控件执行验证,然后将验证报告提交给Page.IsValid 。而某些验证控件的验证效果(验证提示信息显示)在TextChanged事件(指TextBox内的Text值改变,不能与焦点事件混淆)发生时即可显现,比如RequiredFieldValidator。
2. 默认情况下,验证控件生成JavaScript 在客户端执行验证。当点击Button, LinkButton, 或ImageButton时,验证控件会在页面postback之前检查。如果有非法的数据,postback不会发生。然而对某些Button来说,这时并不需要验证数据。在这样的情况下,取消了postback是非常讨厌的。Cancel button就属于这种情况。想象一下用户输入了非法的数据,比如忽略了product的name,然后决定他不需要保存product,然后点击了Cancel button。在这种情况下,Cancel button会触发验证控件,它会报告说缺少product的name,并阻止postback。用户不得不向Product TextBox里按要求输入后再取消编辑。幸运的是,Button, LinkButton, 和ImageButton 有CausesValidation property,它可以指明当点击Button时是否需要发起验证(默认为True)。一般将 Cancel Button的CausesValida