ASP.NET 2.0数据教程之三十九:在编辑和插入界面里添加验证控件
返回“ASP.NET 2.0数据教程目录” 导言 到目前为止的讨论编辑DataList的教程里,没有包含任何验证用户的输入,即使是用户非法输入— 遗漏了product的name或者负的 price— 会导致异常。在前面一章里我们学习了如何在DataList的 UpdateCommand事件处理中添加异常处理代码,以便在出现异常时捕捉它并显示友 好的错误信息。然而理想的编辑界面应该包含验证控件,用来在第一时间里阻止 用户输入一些非法数据。 第一步:从 处理 BLL和 DAL的异常复制例子 在 处理BLL和DAL的异常里我们创建了一个以两列的方式列出product的 name和price的DataList。本章的目标是扩展这个DataList的编辑界面,让它包含 验证控件。我们的验证逻辑如下: product的 name 是必填的 确 保输入的price的值是合法的货币类型格式 确保输入的price的值大于等 于0 我们首先需要将ErrorHandling.aspx页的例子复制到 UIValidation.aspx里。这其中包括页面的声明代码和后台代码。下面是复制声明 代码的步骤: 在 Visual Studio的打开 ErrorHandling.aspx 切 换到源视图 复制从 <asp:Content> 到</asp:Content> 标 签内的代码,见图1. 图 1: 复制<asp:Content> 内的代码 打开 UIValidation.aspx 切换到源视图 粘贴代码. 完成上面 的步骤后,打开ErrorHandling.asxp.cs,复制DispalyExcetionDetails方法和三 个事件处理(Products_EditCommand,Products_CancelCommand, 和 Products_UpdateCommand),注意不要复制声明类和using的代码。将这些代码粘 贴到ErrorHandling.asxp.cs里的EditDeleteDataList_UIValidation 类里。 完成这些后,浏览一下页面。这两个页面无论是输出还是功能都是一样的 (见图2)。 图 2: UIValidation.aspx 页ErrorHandling.aspx一样 第二步: 为DataList的 EditItemTemplate添加验证控件 当创建输入表格时,很重 要的一点是声明必填字段和用户的输入必须是格式正确的合法值。为了确保用户 输入是合法的,ASP.NET提供了5个内置的验证控件,这些验证控件被设计用来验 证单个的输入控件里的输入值。 RequiredFieldValidator —确保必 填值 CompareValidator — 根据另外的控件的值或常量来验证某个 值,或者确保输入值是特定的类型 RangeValidator — 确保输入值 在某个范围内 RegularExpressionValidator —根据正则表达式( regular expression )来验证某个值 CustomValidator — 根据用 户自定义的方法来验证某个值 更多的关于这5个控件的信息请参考给编辑 和新增界面增加验证控件 或着ASP.NET Quickstart Tutorials里的Validation Controls section。 本章里我们需要使用RequiredFieldValidator 来确 保用户输入了product的name,CompareValidator 来确保price的值大于等于0并 且是合法的货币格式。 注意:在ASP.NET 1.x里已经包含了这些验证控件 了,在ASP.NET 2.0里对它们有很多改进。其中最重要的两点一是对除了IE之外的 浏览器的客户端脚本支持,二是同一页面上的验证控件分组。更多的2.0里验证控 件新特性的信息请参考Dissecting the Validation Controls in ASP.NET2.0. 现在我们来将需要的验证控件添加到DataList的 EditItemTemplate里。这个可以通过点击DataList智能标签上的Edit Template, 或者直接写声明代码来完成。我们这里使用第一种方法。选择Edit Template后拖 一个RequiredFieldValidator 进来,将它放在ProductName TextBox后面。 图 3:添加 RequiredFieldValidator 所有的验证控件都只验证 单个的Web控件。因此我们需要指明刚添加的RequiredFieldValidator 是用来验 证ProductName TextBox。这个关联是通过将验证控件的ControlToValidate prope |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |