使用 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 的 Select、Insert、Update 和 Delete 方法。一旦指定了底层对象,并且该对象的方法也映射到了 ObjectDataSource 的对象,就可以将 ObjectDataSource 绑定到 Web 数据控件了。ASP.NET 附带了许多 Web 数据控件,其中包括 GridView、DetailsView、RadioButtonList
和 DropDownList。在页面的整个生命周期中,Web 数据控件可能需要访问它绑定的数据,这是通过调用它的 ObjectDataSource 的 Select 方法实现的;如果 Web 数据控件支持插入、更新或删除,将执行对控件的 ObjectDataSource 的 Insert、Update 或 Delete 方法的调用。接着,通过 ObjectDataSource 将这些调用发送到相应底层对象的方法,如下图所示。
图2: ObjectDataSource 充当代理
了解了能够使用ObjectDataSource 调用插入、更新或删除数据的方法后,我们将关注返回数据;后续教程中将介绍使用ObjectDataSource 和 Web 数据控件修改数据。
步骤 1:添加和配置 ObjectDataSource 控件
首先,打开 BasicReporting 文件夹中的 SimpleDisplay.aspx 页面,切换到 Design 视图,然后,将 ObjectDataSource 控件从 Toolbox 拖放到页面的设计界面。在设计界面上 ObjectDataSource 显示为一个灰框,这是因为它还没有产生任何标记;通过调用来自指定对象的一个方法可以简单地访问数据。通过 Web 数据控件(例如 GridView、DetailsView、FormView 等)可以显示由 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 的其他类,如 DataTables、DataRows 等)。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论