ASP.NET 2.0 的数据源控件

分类: asp.net   出处:iocblog整理  更新时间:2009-02-28   添加到收藏  


  asp.net 2.0 引入了一系列可以改善数据访问的新工具,包括几个数据源和数据绑定控件。新增种类的数据源控件可以消除 asp.net 1.x 中要求的大量重复性代码。例如,您可以很容易地将 sql 语句或存储过程与数据源控件相关联,并且将它们绑定到数据绑定控件。更令人感到印象深刻的是,通过 objectdatasource 控件可以简化开发和减少代码,并且仍然可以在 n 层体系结构的不同层中抽象业务和数据访问逻辑。
  
  在 .net 问世以前,用传统的 asp 生成数据网格通常需要编写大量的代码,以便在遍历 ado 记录集的同时即时生成 html 表。asp.net 1.x 通过允许您将基于 xml 的 dataset 绑定到 asp.net datagrid 控件,从而使该类型的开发变得更加容易。这就减少了生成网格所必需的代码。但是,传统的 asp 和 asp.net 1.x 都要求代码实现分页、排序、编辑和行选择功能。通过 asp.net 2.0 中的改进功能,可以显著减少这些代码的数量,以产生带有完整分页、排序和编辑功能并填充了数据的网格。
  
  在这一期的 data points 中,我将首先演示通过 asp.net 2.0 并使用 sqldatasource 和一些新的数据绑定控件开发 web 应用程序是多么容易。请注意,我在此使用的是 beta 1 版本。
  
  大多数企业应用程序都是在多层体系结构之上生成的,该体系结构有一个用于存放业务逻辑的中间层,以及一个使用一个或多个后端数据库的数据访问层。我将讨论 objectdatasource 可以多么理想地与现有的多层组件集成。通过将 objectdatasource 控件链接到业务对象,您可以充分利用现有的多层体系结构来生成完善的 web ui,并且能够显著减少代码。 objectdatasource 控件还包含一些特殊的属性,使您可以绑定到 asp.net 2.0 和 ado.net 2.0 中新近增强的强类型 dataset 和数据组件。 asp.net 2.0 中的其他新功能和改进包括新增的双向绑定表达式、增强的缓存,以及几个新增的可以数据绑定到新的数据源控件的 asp.net 2.0 控件。
  
  数据绑定控件
  
  要使用数据源控件,必须具有一个用来将它们绑定到的数据绑定控件。在 asp.net 2.0 中有几个新的数据绑定控件,包括 gridview、detailsview 和 formview 控件。如果您喜欢 asp.net 1.x datagrid 控件,那么您也会喜欢 asp.net 2.0 gridview 控件。gridview 在本质上类似于 datagrid,因为它可以绑定到新的数据源控件,并且可以用来实现排序、编辑和分页 ― 它们需要的代码都比 datagrid 少得多(有关 gridview 的详细信息,请参阅 dino esposito 在 msdn?magazine 的 2004 年 8 月刊中发表的文章)。
  
  要将 gridview 绑定到数据源控件,需要将 gridview 的 datasourceid 属性设置为数据源控件的 id。还可以设置 gridview 的其他几个属性来增强外观和用户交互(我将在稍后的示例中加以演示):
  
  <asp:gridview id="gvworders" runat="server"
  datasourceid="sdsordersdatasource"
  autogeneratecolumns="true">
  
  其他控件(例如,dropdownlist)也可以绑定到数据源控件。例如,dropdownlist 控件可以绑定到检索雇员列表的 sqldatasource 控件。雇员的全名可以显示在 dropdownlist 中,而 employeeid 可以作为控件的基础数据值字段绑定到该控件。以下示例定义了一个 dropdownlist,它将显示可供选择的客户名称的列表。客户数据被绑定到一个名为 sdscustomerdatasource 的 sqldatasource 控件,该控件可获得客户的 companyname 和 customerid 字段的列表:
  
  <asp:dropdownlist id="ddlcustomers" runat="server" autopostback="true"
  datasourceid="sdscustomersdatasource"
  datatextfield="companyname"
  datavaluefield="customerid">
  </asp:dropdownlist>
  
  在 asp.net 2.0 中,将控件绑定到数据源控件非常简单,并且不需要任何处于代码隐藏中的代码。但是,如果您愿意,仍然可以编写代码以显式绑定到控件。实际上,数据绑定控件的数据源和 datamember 属性与 asp.net 1.x 相比已经得到了改进。
  
  数据源控件
  
  在 asp.net 2.0 中有几个新的数据源控件,例如,sqldatasource、objectdatasource、xmldatasource、accessdatasource 和 sitemapdatasource(如图 1 所示)。它们全都可以用来从它们各自类型的数据源中检索数据,并且可以绑定到各种数据绑定控件。数据源控件减少了为检索和绑定数据甚至对数据进行排序、分页或编辑而需要编写的自定义代码的数量。
  
  每个数据源控件都具有类似的属性,以便可以与其各自的数据源进行交互。生成 sitemapdatasource 和 xmldatasource 是为了检索分层数据,而生成其他数据源控件是为了检索带有列和行的基于集合的数据。
  
  专门生成 accessdatasource 以便从 access 数据库中检索数据。sqldatasource 听起来好像只能使用 sql server?,但实际情况不是这样的。它实际上可以用来从任何 ole db 或符合 odbc 的数据源中检索数据。

[1] [2] 下一页


Tag: 数据源 ,控件



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。