使用 ObjectDataSource 显示数据
cssclass属性 简介
  有了完整的应用程序体系结构和网站页面布局,我们就可以开始研究如何实现与任务相关的各种常用数据和报表。前面的教程中,已经介绍了如何通过编程将来自 DAL BLL 的数据绑定到 ASP.NET 页面的 Web 数据控件。该语法是 ASP.NET 1.x 应用程序使用的模式,可以在 2.0 应用程序中继续使用。它通过将获得的数据集赋值给Web数据控件的DataSource属性,然后调用DataBind()方法来显示数据。并且,ASP.NET 2.0 新的数据源控件提供了新的声明方式来处理数据。使用这些控件,无需编写一行代码就可以绑定通过前一教程创建的 BLL 检索出的数据。
  ASP.NET 2.0 附带有五个内置数据源控件 – SqlDataSource, AccessDataSource,ObjectDataSource,XmlDataSource, SiteMapDataSource – ,但是,如果需要,用户仍然可以自己构建 custom data source controls。由于我们已经为教程应用程序开发了一个体系结构,因此我们将基于现有的BLL 类来使用 ObjectDataSource
  图1: ASP.NET 2.0 包含五个内置数据源控件
  ObjectDataSource 充当协调其他对象的代理。要配置 ObjectDataSource,需要指定这个底层对象,需要指定该对象的方法如何映射到 ObjectDataSource SelectInsertUpdate Delete 方法。一旦指定了底层对象,并且该对象的方法也映射到了 ObjectDataSource 的对象,就可以将 ObjectDataSource 绑定到 Web 数据控件了。ASP.NET 附带了许多 Web 数据控件,其中包括 GridViewDetailsViewRadioButtonList
DropDownList。在页面的整个生命周期中,Web 数据控件可能需要访问它绑定的数据,这是通过调用它的 ObjectDataSource Select 方法实现的;如果 Web 数据控件支持插入、更新或删除,将执行对控件的 ObjectDataSource InsertUpdate Delete 方法的调用。接着,通过 ObjectDataSource 将这些调用发送到相应底层对象的方法,如下图所示。
  图2: ObjectDataSource 充当代理
  了解了能够使用ObjectDataSource 调用插入、更新或删除数据的方法后,我们将关注返回数据;后续教程中将介绍使用ObjectDataSource Web 数据控件修改数据。
  步骤 1:添加和配置 ObjectDataSource 控件
  首先,打开 BasicReporting 文件夹中的 SimpleDisplay.aspx 页面,切换到 Design 视图,然后,将 ObjectDataSource 控件从 Toolbox 拖放到页面的设计界面。在设计界面上 ObjectDataSource 显示为一个灰框,这是因为它还没有产生任何标记;通过调用来自指定对象的一个方法可以简单地访问数据。通过 Web 数据控件(例如 GridViewDetailsViewFormView 等)可以显示由 ObjectDataSource 返回的数据。
  注意: 或者,也可以先向页面添加 Web 数据控件,然后从它的智能标记的下拉列表选择 <New data source> 选项。
  要指定 ObjectDataSource 的底层对象以及该对象的方法如何映射到 ObjectDataSource 的对象,从 ObjectDataSource 的智能标记单击 Configure Data Source 链接。
  图3: 从智能标记单击 Configure Data Source 链接
  这将启动Configure Data Source 向导。首先,必须首先指定与 ObjectDataSource绑定的对象。如果 "Show only data components" 复选框选中,则该屏幕的下拉列表中只列出具有 DataObject 属性的那些对象。当前列表包括 Typed DataSet TableAdapters 和前面教程中创建的 BLL 类。如果之前忘记向业务逻辑层类添加 DataObject 属性,则在列表看不到这些类。这种情况下,取消对 "Show only data components" 复选框的选中以便查看所有对象,这时将显示 BLL 类(以及 Typed DataSet 的其他类,如 DataTablesDataRows 等)。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。