ASP.NET控件使客户端验证成为一件轻松的工作

ZDNet软件频道 时间:2003-04-22 作者:周靖译 |  我要评论()
本文关键词:
作为程序员,我们都知道用户是无奇不有的。例如,他们可能将密码输入用户ID字段。所以,你可能要花大量编程时间验证或清理应用程序从用户那里收到的输入。
本文译自Builder.com作为程序员,我们都知道用户是无奇不有的。例如,他们可能将密码输入用户ID字段。所以,你可能要花大量编程时间验证或清理应用程序从用户那里收到的输入。在Windows应用程序中,这种代码较易编写,但在Web应用程序中,经常不得不编写凌乱的、重复性的客户端脚本来完成这个任务。之后,还必须找出最佳的方法与用户沟通,指出他们输入有错的地方。

幸运的是,ASP.NET提供了一些体贴的自动验证控件,可用它确保应用程序收到它所希望的输入。最妙的是,这些控件的工作方式就像在文档中叙述的那样:只需把它们放到一个Web窗体,设好几个属性,然后就可以了。

使用RequiredFieldValidator要求输入

本文首先用一个简单的例子展示ASP.NET的数据验证控件是如何工作的。防止用户将一个特定的输入字段留空不填是极其常见的一个任务。假定这个字段要求输入的是用户名。为此,我们在窗体上添加一个TextBox控件,名为txtName。使用RequiredFieldValidator控件,能检查相应的表单字段是否确实有一个值。一旦CausesValidation控件被设为true的任何控件(通常是一个按钮)触发了一个预定义的事件(对按钮来说就是单击),或者你的代码主动调用,就会触发验证。

要为特定的控件指派一个验证控件,可使用验证控件的ControlToValidate属性。另外,使用ErrorMessage属性,可为控件指定一条错误消息,以便在验证失败时显示。由于默认的错误消息就是控件名称,所以最好设置一条更具帮助价值的消息,例如“请输入你的用户名”。

最后,假定我们的窗体上还有一个Submit按钮,它的CausesValidation属性设为true(这对按钮来说是默认值)。如果用户在单击Submit时没有输入用户名,就会出现如A所示的结果。

图A

方便的窗体验证

观察为这个页生成的源代码,很容易就能看出它是如何工作的。如清单A所示,默认情况下,ASP.NET在窗体的HTML中包括了一个客户端脚本。一旦提交窗体,就会调用脚本,由浏览器代表你执行任何验证。这当然十分方便。你无需为自己的窗体编写验证代码,所有验证都在客户端执行。如果验证失败,用户立即就能知道,而且以前输入的任何数据依然存在。

也可将验证控件的行为从默认的客户端验证更改为服务器端验证,方法是将控件的EnableClientScript属性设为false。你在下述情况中应考虑这样做:已知客户端浏览器不支持必要的脚本功能,不希望产生随网页发送嵌入脚本的开销,或者验证需要特殊的外部依赖,所以不可能进行客户端验证(比如要执行一次数据库检索)。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134