快速业务通道

ASP.NET 2.0数据操作教程之十九:给编辑和新增界面增加验证控件

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21

返回“ASP.NET 2.0数据教程目录”

译注:Scott Mitchell写的46篇(现在发布了前15篇)ASP.NET2.0教程系列第 19篇译文,原文尚未发布,Word文档可以在这里下载中英混排版本,这里下载中 文版本

目录

简介

一、从《Examining the Events Associated with Inserting, Updating, and Deleting 》中复制代码

二、将绑定列 转换为模板列

三、为GridView的项编辑模板(EditItemTemplate )增加 验证控件

四、概述页上的数据录入问题

五、为DetailsView的 InsertItemTemplate模板增加验证控件

六、对验证控件进行分组

小结

简介

在前面三节的示例(Truly译注:本文完稿时前三节16-18仍 在紧张翻译中,而且目前本教程系列46篇只有15篇已经发布,其他原文尚未发布 ,无法从网络获取)中,GridView和DetailsView控件使用的是绑定列和 CheckBoxField(绑定GridView和DetailsView时,通过智能标记可以令VS根据数 据库自动增加对应的类型)。当编辑GridView或者DetailsView中的一行时,非只 读属性的绑定列将自动转为textbox,以便用户修改现有的数据。同样地,当在 DetailsView控件中新增记录时,InsertVisible属性为true(默认值)的绑定列会 呈现出空的textbox,以接受用户输入。CheckBoxField列也是如此,通常作为只 读的checkbox显示,新增/编辑记录时则可以接受选择。

尽管BoundField 和CheckBoxField提供的编辑和添加界面相当有用,却缺乏验证功能。当用户产生 一些数据录入错误――比如遗漏了 ProductName字段或者为UnitsInStock输入一 个无效值(如-50)――那么应用程序将从底层抛出一个异常。尽管我们可以很好 的处理这个异常像上节教程previous tutorial中讨论的,但是,一个完美的 ‘新增/编辑’用户界面应该包括验证控件,在第一时间阻止用户输入 这些无效数据。

为了提供一个自定义的新增/编辑界面,需要将 BoundField和CheckBoxField换成模板列(ItemplateField)。关于模板列,已经 在《Using TemplateFields in the GridView Control 和 Using TemplateFields in the DetailsView Control》教程里讨论过了,由几个处理不 同行状态的模板组成。模板列的项模板(ItemTemplate),用来呈现DetailsView 或GridView控件中的只读字段或行,而EditItemplate和InsertItemTemplate则分 别是编辑和新增模式的界面模板。

在本节教程中,你会发现为模板列的 EditItemTemplate和InsertItemTemplate提供验证控件来提供更健壮的用户界面 是多么的简单。明确一点,本节教程采用《Examining the Events Associated with Inserting, Updating, and Deleting 》中创建的示例代码,来增加新增/ 编辑时的相关验证。

一、复制《Examining the Events Associated with Inserting, Updating, and Deleting》的示例代码

在《Examining the Events Associated with Inserting, Updating, and Deleting》教程中我们创 建了一个页面,并在一个可编辑的GridView中列表显示产品的名字和价格。页面 还有一个DetailsView,DefaultMode 属性设置成Insert,因此始终呈现为新增模 式。通过DetailsView,用户可以录入名字和价格增加新的产品,点击Insert后, 新产品就被增加到系统里(见图1)。

ASP.NET 2.0数据操作教程之十九:给编辑和新增界面增加验证控件

图1:以前的代码允许用户增加新的产品或修改已有的产品

本节 教程的目标是为DetailsView和GridView提供验证控件。更精确一些,此验证逻辑 将是:

• 新增/编辑产品时name为必填项

• 新增记录时 price为必填项;编辑时依然需要价格,并且在GridView的RowUpdating事件处理 中应用上节教程previous tutorial中的程序逻辑

• 确保输入的 price是有效的货币格式

在考虑为前面代码增加验证之前,我们首先需要 复制上节教程previous tutor

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号