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

返回“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)。


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

时间: 2024-09-20 21:02:50

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

在ASP.NET 2.0中操作数据之十九:给编辑和新增界面增加验证控件_自学过程

导言 在前面三节的示例中,GridView和DetailsView控件使用的是绑定列和CheckBoxField(绑定GridView和DetailsView时,通过智能标记可以令VS根据数据库自动增加对应的类型).当编辑GridView或者DetailsView中的一行时,非只读属性的绑定列将自动转为textbox,以便用户修改现有的数据.同样地,当在DetailsView控件中新增记录时,InsertVisible属性为true(默认值)的绑定列会呈现出空的textbox,以接受用户输入.C

Scott Mitchell的ASP.NET 2.0数据操作教程之八:使用两个DropDownList过滤的主

Scott Mitchell 的ASP.NET 2.0数据操作教程之八:使用两个DropDownList过滤的主/从报表 返回"ASP.NET 2.0数据教程目录" 导言 在前面的指南中我们研究了如何显示一个简单的主/从报表, 该报 表使用DropDownList和GridView控件, DropDownList填充类别,GridView显示选定 类别的产品. 这类报表用于显示具有一对多关系的记录时非常合适, 同时它也可 以很容易的被扩展以显示多个一对多关系的数据. 比如, 一个订单系

Scott Mitchell的ASP.NET 2.0数据操作教程之七:使用DropDownList过滤的主/从

Scott Mitchell的ASP.NET 2.0数据操作教程之七:使用DropDownList过滤的主/从报表 返回"ASP.NET 2.0数据教程目录" 导言 主/从报表是一种很常见的报表, 这类报表中首先会显示一些主记 录. 然后用户可以深入(追溯)某条主记录来查看该主记录的详情. 主/从报表是显 示一对多关系的理想选择, 比如一个报表显示所有的产品类别,然后根据用户选择 的特定类别显示与之关联的产品. 另外, 主/从表在显示"宽"表(有 很多列的表)的详细

Scott Mitchell的ASP.NET 2.0数据操作教程之十:使用GridView和DetailView实

Scott Mitchell 的ASP.NET 2.0数据操作教程之十:使用GridView和DetailView实现的主/从报表 返回"ASP.NET 2.0数据教程目录" 导言 在前面的教程我们看到了如何使用两个页面(一个主页,用于列出供应 商; 一个明细页,用于显示选定供应商提供的产品)创建主/从报表 . 这种两个页 面的报表格式也可以集中在一个页面上. 这篇教程将会使用一个GridView, 它的 每一行都包含产品的名称和单价以及一个选择按钮. 单击一个产品的选择按钮会 在同一

ASP.NET 2.0数据操作教程之二十:定制数据修改界面

返回"ASP.NET 2.0数据教程目录" 目录 简介 一.重载UpdateProduct方法 二.手工处理可 编辑的GridView 三.在编辑界面中使用DropDownList显示Category和 Supplier 四.用RadioButton表示Discontinued状态 小结 简介 GridView和DetailsView控件通过绑定列和CheckBox列,可以简化数 据编辑界面制作,呈现只读,编辑和新增界面,我们不需要增加元素标记或编写 任何额外代码就可以得到这些界面.然

ASP.NET 2.0数据操作教程之二十二:为删除数据添加客户端确认

返回"ASP.NET 2.0数据教程目录" 导言 在前面一些教程中,我们已经看到如何使用应用程序框架, ObjectDataSource,以及那些提供增.改.删功能的数据Web控件.在我们已经实 现的删除数据的界面中,包含一个删除按钮,当点击它的时候,会导致数据回传 以及调用ObjectDataSource的Delete()方法.然后Delete()方法会调用对应业务 逻辑层中的方法,再进入数据访问层,直至调用最终操作数据库的DELETE语句. 虽然这个界面已经能够让用户通过GridV

ASP.NET 2.0数据操作教程之二十一 实现开放式并发

返回"ASP.NET 2.0数据教程目录" 导言 对于那些仅仅允许用户查看数据,或者仅有一个用户可以修改数 据的web应用软件,不存在多用户并发冲突的问题.然而对于那些允许多个用户修 改或删除数据的web应用软件,则有可能发生一个用户所做的更改与另一个并发用 户的更改冲突.在没有任何并发策略的地方,当两个用户同时编辑某一条记录, 最后提交的用户的更改将覆盖先提交的用户所作的更改. 例如,假设两个 用户,Jisun和Sam,都访问我们的应用软件中的一个页面,这个页面允许访问者 通过一个G

ASP.NET 2.0数据教程之三十九:在编辑和插入界面里添加验证控件

返回"ASP.NET 2.0数据教程目录" 导言 到目前为止的讨论编辑DataList的教程里,没有包含任何验证用户的输入,即使是用户非法输入- 遗漏了product的name或者负的 price- 会导致异常.在前面一章里我们学习了如何在DataList的 UpdateCommand事件处理中添加异常处理代码,以便在出现异常时捕捉它并显示友 好的错误信息.然而理想的编辑界面应该包含验证控件,用来在第一时间里阻止 用户输入一些非法数据. 第一步:从 处理 BLL和 DAL的异常复制例子

Scott Mitchell的ASP.NET 2.0数据操作教程之九:跨页面的主/从报表

返回"ASP.NET 2.0数据教程目录" 导言 在前面的两篇教程中,我们看到了如何在单一页面中显示主/从报表, 它使用DropDownList显示主记录,使用GridView或DetailsView显示详细信息. 另 外一种常见的主/从报表模式是在一个页面中显示主记录而在另一个页面中显示详 细信息.互联网上的论坛,如www.asp.net ,就是该模式在实际应用中非常典型例子 . Asp.Net论坛由多个子论坛组成: Getting Started, Web Forms, Data