验证控件-服务器端验证

作者:vkvi 来源:千一网络(原创) 日期:2007-11-19

之前讲的几个验证控件,除了 CustomValidator 都可以在客户端进行验证,那么服务器端会不会再次验证呢?如果服务器端不再次验证那客户端不是可以绕过验证了。非常高兴的是,默认情况下,客户端和服务器端都会验证。我们这一节就是要了解几个与验证相关的属性和方法,这对我们开发高级程序大有好处。

  • Validate() 验证控件和 Page 均具有此方法,表示在服务器端调用验证,Page 的 Validate() 方法中还可以多带一个参数,在后面讲到。
  • IsValid 验证控件和 Page 均具有此属性,表示验证是否通过。
  • CausesValidation 这个是 TextBox、Button 等控件的属性,不是验证控件的属性,表示是否自动进行验证。可选值为:true、false。TextBox 等输入类控件的默认值为 false;Button 等按钮的默认值是 true。
    • TextBox 的 CausesValidation 默认值为 false,也就是说由 TextBox 触发回发时,该网页的验证控件在客户端和服务器端都不会自动工作,得人工调用 Validate() 来进行验证;
    • 那么 TextBox 会不会触发回发呢?默认不会,因为其 AutoPostBack 属性值默认为 false。如果我们将 TextBox 的 AutoPostBack 设为 true,则 TextBox 的值有变化时,会触发回发。
    • Button 的 CausesValidation 默认值为 true,也就是说单击 Button 时,该网页的验证控件在客户端和服务器端都会自动工作,程序员没有必要再调用 Validate()。
  • ValidationGroup 验证组。举例说明:“用户资料”分为“登录资料”和“真实资料”,如果没有 ValidationGroup,则“登录资料”和“真实资料”是一起验证的。现在我想先验证“登录资料”,验证通过后再验证“真实资料”(实际中 ValidationGroup 常用于根据条件进行选择性的验证),则需要把验证“登录资料”的验证控件的 ValidationGroup 属性值设置为同一个值,而把验证“真实资料”的验证控件的 ValidationGroup 属性值设置为另一个值。
    • 指定了 ValidationGroup 的验证控件不会自动工作;
    • 也就是说指定了 ValidationGroup 的验证控件不会在客户端工作,在服务器端也不会自动工作。
    • 要让指定了 ValidationGroup 的验证控件在服务器端工作,就必须调用该控件的 Validate() 方法,或者调用 Page.Validate() 方法,或者调用 Page.Validate(string validationGroup) 方法。Page.Validate() 相当于调用页面中所有的验证控件的 Validate(),而 Page.Validate(string validationGroup) 相当于调用页面中 ValidationGroup 属性值为 validationGroup 的验证控件的 Validate()。
  • 再回头说一说 IsValid,验证控件的 IsValid 默认值是 true,但 Page.IsValid 不能随便使用,要使用 Page.IsValid 必须是验证控件自动工作了之后,或者手动调用了 Page.Validate() 之后,或者手动调用了 Page.Validate(string validationGroup) 之后。

你前面那位网友看了:Team Foundation Server 如何同时只允许一人签出?

▲▲▲嘿,欢迎转载传播本站原创文章,尽量保留来源噢。▲▲▲

文章评论
赞助商们
vkvi
vkvi

作者简介: vkvi,致力于 .NET Web 开发、移动开发的技术推广,在 .NET、SQL Server、Windows Server 等方面有深入研究和丰富经验,10 年间共计撰写文章 4000 余篇。 主持金融、国土、农业、电商等多个行业项目执行, 推行“技术提升生产力、人心决定成功率”的管理理论。 联系他