• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 在ASP.NET 2.0中操作数据之三十六:在DataList里编辑和删除数据概述

在ASP.NET 2.0中操作数据之三十六:在DataList里编辑和删除数据概述

作者:heker2007 字体:[增加 减小] 来源:互联网 时间:2017-05-11

heker2007通过本文主要向大家介绍了asp.net,asp net培训,asp和asp.net的区别,零基础学asp.net,c#和asp.net的区别等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

导言

  概述插入、更新和删除数据 里我们已经学习了如何使用GridView等控件来插入,更新删除数据。通过ObjectDataSource和其它数据控件仅仅只需要在智能标签里勾一下checkbox就完成了,不需要写任何代码。而DataList没有这些内置的功能。我们可以使用1.x 里的方法来实现这些功能。在本章我们将看到,DataList提供了一些事件和属性来完成我们的目的,为此我们需要写一些代码。

  本章我们首先学习如何创建一个支持编辑和删除数据的DataList。后面的教程里我们将学习一些高级的编辑和删除方法,包括验证,DAL和BLL的异常处理等。

  注意:和DataList一样,Repeater也不提供内置的这些功能。而且Repeater里没有DataList里提供的那些事件和属性。因此本章和后面的几章我们仅仅只讨论DataList。

第一步: 创建编辑和删除教程页

  首先创建本章和后面几章需要用到的页。添加一个名为EditDeleteDataList的文件夹。然后添加下面的页。确保每页都包含了Site.master。

Default.aspx
Basics.aspx
BatchUpdate.aspx
ErrorHandling.aspx
UIValidation.aspx
CustomizedUI.aspx
OptimisticConcurrency.aspx
ConfirmationOnDelete.aspx
UserLevelAccess.aspx

http://files.weikejianghu.com/file_images/article/201605/201605120906251.png
图 1: 添加页

  和别的文件夹一样,Default.aspx列出教程章节。记得SectionLevelTutorialListing.ascx用户控件提供了这个功能。从解决方案里将它拖到我们的页里。

http://files.weikejianghu.com/file_images/article/201605/201605120906262.png
图 2: 添加SectionLevelTutorialListing.ascx 用户控件

  最后将这些页添加到Web.sitemap里。在Master/Detail Reports with the DataList and Repeater<siteMapNode>之后添加下面的标记:

<siteMapNode
 title="Editing and Deleting with the DataList"
 description="Samples of Reports that Provide Editing and Deleting Capabilities"
 url="~/EditDeleteDataList/Default.aspx" >
 <siteMapNode
 title="Basics"
 description="Examines the basics of editing and deleting with the
   DataList control."
 url="~/EditDeleteDataList/Basics.aspx" />
 <siteMapNode
 title="Batch Update"
 description="Examines how to update multiple records at once in a
   fully-editable DataList."
 url="~/EditDeleteDataList/BatchUpdate.aspx" />
 <siteMapNode
 title="Error Handling"
 description="Learn how to gracefully handle exceptions raised during the
   data modification workflow."
 url="~/EditDeleteDataList/ErrorHandling.aspx" />
 <siteMapNode
 title="Adding Data Entry Validation"
 description="Help prevent data entry errors by providing validation."
 url="~/EditDeleteDataList/UIValidation.aspx" />
 <siteMapNode
 title="Customize the User Interface"
 description="Customize the editing user interfaces."
 url="~/EditDeleteDataList/CustomizedUI.aspx" />
 <siteMapNode
 title="Optimistic Concurrency"
 description="Learn how to help prevent simultaneous users from
   overwritting one another s changes."
 url="~/EditDeleteDataList/OptimisticConcurrency.aspx" />
 <siteMapNode
 title="Confirm On Delete"
 description="Prompt a user for confirmation when deleting a record."
 url="~/EditDeleteDataList/ConfirmationOnDelete.aspx" />
 <siteMapNode
 title="Limit Capabilities Based on User"
 description="Learn how to limit the data modification functionality
   based on the user s role or permissions."
 url="~/EditDeleteDataList/UserLevelAccess.aspx" />
</siteMapNode>
</div>

更新了Web.sitemap后,浏览一下。

http://files.weikejianghu.com/file_images/article/201605/201651292402125.png
图 3: 站点导航现在包含了编辑和删除DataList 教程

第二步: 探讨更新和删除数据所要用到的技术

  使用GridView来编辑和删除数据之所以很简单,是因为GridView和ObjectDataSource在底层非常一致。如研究插入、更新和删除的关联事件里所讨论的,当更新按钮被点击时,GridView自动将字段的值赋给ObjectDataSource的UpdateParameters集合,然后激发ObjectDataSource的Update()方法。我们现在需要确保将合适的值赋给ObjectDataSource的参数,然后调用Update()方法。DataList提供了以下的属性和事件来帮助我们完成这些:

  DataKeyField property — 更新或删除时,我们需要唯一确定DataList里的每个item。将这个属性设为显示的数据的主健。这样做会产生DataList的 DataKeys collection ,每个item都有一个指定的 DataKeyField .
 EditCommand event — 当CommandName属性设为“Edit”的Button, LinkButton, 或 ImageButton 被点时激发.
 CancelCommand event — 当CommandName属性设为“Cancel”的Button, LinkButton, 或 ImageButton 被点时激发. UpdateCommand event — 当CommandName属性设为“Update”的Button, LinkButton, 或 ImageButton 被点时激发.  DeleteCommand event — 当CommandName属性设为“Delete”的Button, LinkButton, 或 ImageButton 被点时激发.

  使用以上的属性和事件,我们有四种方法来更新和删除数据:

  使用ASP.NET 1.x 的技术— DataList先于ASP.NET 2.0 和ObjectDataSources 存在,可以直接通过编程来实现编辑和删除。这种方法需要我们在显示数据或者更新删除记录时,直接在BLL层将数据绑定到DataList。
使用一个单独的ObjectDataSource 来实现选择,更新和删除 — DataList没有GridView内置的编辑删除功能,并不意味着我们不能添加这些功能。我们象在GridView的例子里那样,使用 ObjectDataSource,但是在设置ObjectDataSource的参数并调用Update()方法时,需要为DataList的UpdateCommand事件创建一个  event handler。 Using an ObjectDataSource Control for Selecting, but Updating and Deleting Directly Against the BLL — 使用第二种方法时我们需要为UpdateCommand事件和参数赋值等写一些代码。其实我们可以用ObjectDataSource来实现selecting ,更新和删除直接调用BLL(象第一种方法)。我的意见是,直接调用BLL会使代码可读性更好。 使用多个ObjectDataSources —前面的三种方法都需要一些代码。如果你宁愿坚持使用尽可能多的声明语法的话,最后一种方法是使用多个ObjectDataSources 。第一个ObjectDataSource 从BLL获取数据,并绑定到 DataList. 为更新添加另一个 ObjectDataSource, 直接添加到 DataList的 EditItemTemplate.同样对删除也是如此。三个 ObjectDataSource通过 ControlParameters   声明语法直接将参数绑定到ObjectDataSource 的参数 (而不是在 DataList的 UpdateCommand event handler编程处理). 这种方法也需要一些编码 — 我们需要调用 ObjectDataSource内置的 Update() 或 Delete() — 但是比起其它三种方法,代码少的多。这种方法的劣势是多个  ObjectDataSources 使页面看起来混乱。

   我喜欢选择第一种方法,因为它提供了更好的可扩展性,而设计DataList的本意就是使用这种方式。当扩展DataList使它和ASP.NET 2.0的数据源控件一起工作时,它没有“正式”的ASP.NET 2.0数据控件( GridView, DetailsView, 和FormView)的那些可扩展性或特性。当然其它方法也不是没有优点。

  这几章关于编辑和删除的教程会使用ObjectDataSource 来显示数据,然后直接调用BLL来实现编辑和删除(第三种方法)

第三步: 添加DataList并配置它的ObjectDataSource

  本章我们将创建一个DataList用来列出product的信息,并提供用户编辑其name和price,删除的功能。我们使用ObjectDataSource来显示数据,调用BLL来实现更新和删除的功能。首先我们来实现一个只读的显示product的页。由于在前面的教程里已经实现过这样的功能,在这里我们很快带过。

  打开EditDeleteDataList文件夹下的Basics.aspx页,添加一个DataList。然后通过智能标签创建一个ObjectDataSource。在SELECT标签里使用ProductsBLL类的GetProducts()方法配置它。

http://files.weikejianghu.com/file_images/article/201605/201605120906264.png
图 4: 使用ProductBLL类配置ObjectDataSource

http://files.weikejianghu.com/file_images/article/201605/201605120906265.png

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Asp.net SignalR 应用并实现群聊功能 开源代码
  • asp.net动态更新
  • asp.net利用母版制作页脚效果
  • Asp.Net服务器发送HTTP标头后无法设置内容类型的问题解决
  • 使用asp.net mvc,boostrap及knockout.js开发微信自定义菜单编辑工具(推荐)
  • 详解ASP.NET MVC 常用扩展点:过滤器、模型绑定
  • ASP.NET Core发送邮件的方法
  • 在ASP.NET Core 中发送邮件的实现方法(必看篇)
  • ASP.NET MVC从视图传参到控制器的几种形式
  • Asp.net core WebApi 使用Swagger生成帮助页实例

相关文章

  • 2017-05-11在.NET中取得代码行数的方法
  • 2017-05-11Asp.Net实现404页面与301重定向的方法
  • 2017-05-11ASP.NET网页打印(只打印相关内容/自写功能)
  • 2017-05-11CheckBoxList两列并排编译为表格显示具体实现
  • 2017-05-11asp.net的web页面(aspx)数据量过多时提交失败对策
  • 2017-05-11ASP.NET网站第一次访问慢的解决方法
  • 2017-05-11Asp.net SignalR应用并实现群聊功能
  • 2017-05-11asp,asp.net学习教程下载
  • 2017-05-11ASP.NET中利用WebClient上传图片到远程服务的方法
  • 2018-08-20ASP.NET实现301重定向方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ASP.NET中利用存储过程实现模糊查询
    • ASP.NET样板项目ABP框架的特性总结
    • asp.net request.PathInfo实现的url重写
    • asp.net sql 数据库处理函数命令
    • ASP.NET页面间的传值的几种方法
    • ASP.NET MVC中的AJAX应用
    • 在ASP.NET 2.0中操作数据之十:使用 GridView和DetailView实现的主/从报表
    • System.Web中不存在类型或命名空间名称“Optimization”(是否缺少程序集引用?)
    • .NET原型模式讲解
    • MvcPager分页控件使用注意事项

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有