程序A 显示NewBabyBoomer.aspx。这是一个假想网站上创建新帐号的注册网页,该虚拟网站提供了美国战后婴儿出生高潮期(1946年到1964年)的成员信息。该网页是一种典型的注册网页。用户在页面上输入自己设定的用户名和密码,密码必须输入两遍进行确认。页面还会要求用户输入他或她的出生年份。
各域的Label、TextBox输入控件和检验控件都安排在了一个Web服务器Table控件内。这个Table控件的后面跟着一个名叫ValidationSummary的按钮控件。Button_Click是按钮控件的OnClick事件处理器,它包含在aspx文件顶部的<script>代码块内。图B显示最初的NewBabyBoomer网页。
图B
NewBabyBoomer网页上的所有域都是需要的。所以,每个输入控件都要由两个检验控件进行检查。RequiredFieldValidator保证了输入控件中一定要输入值。另一个检验控件对输入的值进行检查。
在处理可选域的情况下,你可以采用检验控件,比如 RegularExpressionValidator、 CompareValidator
和 RangeValidator等。采用这类控件,如果输入控件没有值则检查成功,因此你可以把某个域设为可选,但在用户输入值的时候还是要进行检查。
在NewBabyBoomer页面上,RegularExpressionValidator负责检查Username域以保证用户名至少有6个字母字符长。正则表达式“w”由ValidationExpression属性设置。而同样的RegularExpressionValidator则检查Password域,虽然ValidationExpression设置为“.”以便密码可以包含任何字符但长度至少得多于6个字符。
RangeValidator检查Year Born域保证输入控件的值处于1946 到1964的数值范围之内。如果输入的值落在了范围之外或者不是整数则检查不通过。最后,设置Equal运算符的CompareValidator检查Confirm域保证其输入值匹配Password域。
图C显示了检验控件和ValidationSummary控件在输入无效值之后的输出结果。Button_Click事件处理器在单击Create Account按钮之后被调用而且所有的域都是有效的。Page.IsValid属性在事件处理器之内进行检查以防网页被用户在客户端旁路检查。图D显示成功创建客户信息之后的确认页面。
图C
图D
ASP.NET中新推出的检验控件对Web开发提供了必要的输入检查功能。这是ASP技术基础上的显著改进。希望本文能为那些在其开发项目中采用检验控件的读者有所帮助。