ObjectDataSource用法说明
控件概述
ASP.NET ObjectDataSource 控件表示具有数据检索和更新功能的中间层对象。作为数据绑定控件(如 GridView、FormView 或 DetailsView 控件)的数据接口,ObjectDataSource 控件可以使这些控件在 ASP.NET 网页上显示和编辑中间层业务对象中的数据。
检索和修改数据
大多数 ASP.NET 数据源控件,如 SqlDataSource,都在两层应用程序层次结构中使用。在该层次结构中,表示层(ASP.NET 网页)可以与数据层(数据库和 XML 文件等)直接进行通信。但是,常用的应用程序设计原则是,将表示层与业务逻辑相分离,而将业务逻辑封装在业务对象中。这些业务对象在表示层和数据层之间形成一层,从而生成一种三层应用程序结构。ObjectDataSource 控件通过提供一种将相关页上的数据控件绑定到中间层业务对象的方法,为三层结构提供支持。在不使用扩展代码的情况下,ObjectDataSource 使用中间层业务对象以声明方式对数据执行选择、插入、更新、删除、分页、排序、缓存和筛选操作。
ObjectDataSource 控件使用反射调用业务对象的方法,以对数据执行选择、更新、插入和删除操作。设置 ObjectDataSource 控件的 TypeName 属性来指定要用作源对象的类名称。有关如何创建要与 ObjectDataSource 控件一起使用的源数据对象的详细信息,请参见创建 ObjectDataSource 控件源对象。
排序和分页
通过将请求中的排序和分页信息从 GridView 控件等数据绑定控件传递到要处理的数据对象,ObjectDataSource 控件可以对其他的排序和分页功能提供支持。此后,源数据对象或数据源控件本身可以对数据进行排序,并将数据返回到各页中。
有关将排序和分页参数传递到 ObjectDataSource 控件的数据对象的信息,请参见对 ObjectDataSource 控件使用参数。
缓存
ObjectDataSource 控件可以缓存基础业务对象返回的对象。但是,如果对象存放资源或保持不能在多个请求之间共享的状态,则不能缓存该对象,例如,打开的 DataReader 对象就是这样的对象。
筛选
如果由源数据对象返回到 ObjectDataSource 控件的对象是 DataSet 或 DataTable 对象,则 ObjectDataSource 控件会支持使用 DataColumn 类的 Expression 属性的语法对筛选提供支持。通过筛选,无需使用新的选择条件对数据源进行重新查询,即可只公开与特殊的搜索条件匹配的行。有关更多信息,请参见使用数据源控件筛选数据。
冲突检测
通过将 ObjectDataSource 控件的 ConflictDetection 属性设置为 true,可以指定 ObjectDataSource 控件应该包括调用源数据对象的更新方法时的原始值。此后,这些原始值可以包括在开放式并发检查中。有关更多信息,请参见对 ObjectDataSource 控件使用参数。有关开放式并发检查的信息,请参见使用开放式并发。