ASP.NET 2.0数据教程:添加和配置ObjectDataSource控件


  本文标签:ObjectDataSource

  首先,打开BasicReporting文件夹中的SimpleDisplay.aspx页面,切换到设计视图,从工具箱拖拽一个ObjectDataSource控件到页面  。它在设计界面显示为一个灰色的方块,这是因为它不产生任何的声明标记;它仅仅是通过调用制定的对象的方法存取数据  。通过ObjectDataSource返回的数据可以展现到Data Web 服务器控件,例如GridView、DetailsView、FormView等等  。

  注意:作为另一种选择,你也可以先在页面上添加一个Data Web 服务器控件,然后“显示智能标记”,从“选择数据源”下拉框中选择〈新建数据源…〉进入数据源配置向导来添加一个ObjectDataSource  。

  为了指定ObjectDataSource的底层对象并且把该对象的方法映射到ObjectDataSource的的方法,可以点击ObjectDataSource的智能标记中的“配置数据源”链接进入数据源配置向导  。

  点击智能标记中的“配置数据源”链接 

  图3: 点击智能标记中的“配置数据源”链接

  这将进入数据源配置向导  。首先,我们需要给ObjectDataSource指定一个业务对象  。如果勾选上“只显示数据组件”,那么下拉框中就仅仅显示出那些以[DataObject]特征修饰过的对象  。当前这个列表中应该包含了类型化数据集中表适配器对象(TableAdapters)和前文中我们已经创建的业务对象  。如果你忘了给业务逻辑类增加[DataObject]特征,那么当前列表中讲看不到它们  。如果是那样的话,你也可以不勾选“只显示数据组件”从而看见所有对象,这就可以把业务对象包含进来(连同类型化数据集中的其他类 –DataTables、 DataRows等等)

  在第一屏中从下拉列表中选择业务对象ProductsBLL ,然后点击“下一步”  。

  指定ObjectDataSource 控件使用的业务对象 

  图4: 指定ObjectDataSource 控件使用的业务对象

  在下一屏中向导中你可以选择ObjectDataSource要调用的方法  。下拉列表中方法是从上一屏中选定的业务对象获得的  。这里我们可以看到GetProductsByProductID,GetProducts,GetProductsByCategoryID和GetProductsBySupplierID这几个方法  。从下拉列表中选择方法GetProducts然后点击“完成”(如果你已经像前文展示那样给ProductBLL的方法增加了[DataObjectMethod]特征,那么该项会被默认选中)  。

  从“Select”Tab页选择返回数据的方法 

  图5: 从“Select”Tab页选择返回数据的方法

  手工配置ObjectDataSource

  ObjectDataSource配置向导提供了一个快捷的方式来指定它使用的对象并关联需要调用的方法  。不过,你也可以通过它的属性来配置ObjectDataSource,不管是通过属性窗口还是直接在声明标记里  。只需简单地将TypeName属性设置为使用的业务对象的名称,将SelectMethod属性设置为提取数据时需要调用的方法名称  。

  1. < asp:ObjectDataSource ID="ObjectDataSource1" runat="server"   
  2.  
  3.         SelectMethod="GetProducts" 
  4.  
  5.         TypeName="ProductsBLL">  
  6.  
  7. < /asp:ObjectDataSource>  
  8.  

  尽管你可能更喜欢数据源配置向导,但有时你还是需要手工配置ObjectDataSource,因为配置向导只列出已经开发的类  。如果你希望把ObjectDataSource绑定到.NET Framework里的类–例如 Membership class来存取登陆用户信息,或者Directory class 来管理文件系统信息,那么你就需要手工设置ObjectDataSource的属性  。