数据源类型
ASP.NET 2.0 提供了几个独特的数据源对象,用于为数据绑定控件构造一个公共接口框架。数据源的对象用于操作不同的基础结构(从数据库、内存中的对象到 XML 文件),为控件提供抽象数据操作功能。
AccessDataSource 如果在应用程序中使用 Microsoft Access 数据库,则能够通过
System.Web.UI.WebControls.AccessDataSource 执行插入、更新和删除数据的操作。Access 数据库是提供基本关系存储的最小数据库。因为使用起来既简单又方便,所以许多小型的 Web 站点通过 Access 形成数据存储层。虽然 Access 不提供像 SQL Server 这样的关系数据库的所有功能,但是其简单性和易用性使 Access 非常适合应用于原型开发和快速应用程序开发 (RAD)。
SqlDataSource 为了提供一个更加健壮的数据库,综合利用 Microsoft SQL Server 提供的广泛功能,ASP.NET 2.0 提供了
SQLDataSource。
SQLDataSource 的配置比
AccessDataSource 的更为复杂,
SQLDataSource 用于企业级应用程序,这些应用程序需要一个真正的数据库管理系统 (DBMS) 所拥有的功能。
ObjectDataSource
System.Web.UI.WebControls.ObjectDataSource 用于实现一个数据访问层,从而提供更好的封装和抽象。
ObjectDataSource 控件支持绑定到一个特定的数据层,而非绑定到一个数据库,其绑定方式与使用其他控件绑定数据库的方式相同。
ObjectDataSource 控件能够绑定到任何一个方法,该方法返回一个
DataSet 对象或
IEnumerable 对象(例如,一个
DataReader 或类集合)。
<asp:objectdatasource id="ObjectDataSource" runat="server" typename="DAL.Customers" selectmethod="GetOrders"> </asp:objectdatasource> |
ObjectDataSource 控件使用 Web 服务代理的方式与使用数据访问层的方式完全相同。换句话说,
ObjectDataSource 处理设计正确的 Web 服务与处理一个关系数据库的方式相同。
DataSetDataSource System.Web.UI.WebControls.DataSetDataSource 控件允许使用 XML 列表数据。列表数据以行和列排列。
<?xml version="1.0"?> <collection> <book> <title>cosmos</title> <author>carl sagan</author> <publisher>ballantine books</publisher> </book> <book> <title>catwings</title> <author>ursula k. le guin</author> <publisher>scholastic</publisher> </book> </collection> |
要使用数据,只需设置
DataFile 属性,使其指向 XML 文件。
<asp:datasetdatasource id="Datasetdatasource1" runat="server" datafile="collection.xml" /> |
数据源能够连接到任何列表控件,例如
DataGrid。
XmlDataSource XML 数据通常用于表示半结构化或层次化数据。使用 XML 文档作为数据源,可以从其他资源(例如,其他公司或现有应用程序)接收 XML 文档,并将 XML 数据格式化,以便与应用程序兼容。
要配置一个
System.Web.UI.WebControls.XmlDataSource,必须指定 XML 文件的路径,如果 XML 需要传输数据,则还需指定 XSLT 样式表路径或
XPath 查询路径(可选)。
<asp:XmlDataSource ID="XmlDataSource1" Runat="server" DataFile="~/xml/fruits.xml"> </asp:XmlDataSource> |
XMLDataSource 特别适用于拥有层次结构的控件,例如,树视图或数据列表。
<asp:TreeView ID="TreeView1" Runat="server" DataSourceID="XmlDataSource1" ShowLines="True"> </asp:TreeView> |
以上两个列表说明了如何声明性地配置一个
XmlDataSource 和一个
TreeView 控件,使之呈现如图 2 所示的 XML 层次结构。
图 2. TreeView 控件 TreeView 控件自动生成标记来创建一个用户界面,支持用户单击父实体时展开节点。
TreeView 控件通过
XMLDataSource 绑定到 fruits.xml 文件。
SiteMapDataSource System.Web.UI.WebControls.SiteMapDataSource 控件能够在逻辑上(而非物理上)实现 Web 站点的导航。通过生成一个逻辑结构,导航不受文件物理地址变动的影响。即使页面物理位置改变,您也不必更改应用程序的导航结构。
要使用
SiteMapDataSource,第一步是创建一个 XML 文件来映射
SiteMapNode 元素的层次结构,从而指定站点的导航结构。您可以将 XML 文件保存为 app.sitemap。
当您在应用程序中使用
SiteMapDataSource 时,它将查找指定的 app.sitemap 文件。然后,
SiteMapDataSource 连接到导航控件,实现逻辑导航。
图 3. Home-> Articles-> Article 2 页面的详细路经跟踪 数据绑定 一旦创建了一个数据源,接下来是将数据源连接到一个控件。这里的“连接”就是所谓的数据绑定。ASP.NET v1.x 提供了一些数据绑定控件,例如
DataGrid、
DataList 和
DropDownList 等。ASP.NET 2.0 对改进数据绑定控件的概念作出了几个重要的创新:
1.
|
现在,当数据绑定控件绑定到一个数据源控件(通过 DataSourceID 属性)时,能够自动绑定本身。这使页面开发人员无需了解页面的生存周期,并且不必在此时显式调用 DataBind()。数据绑定控件能够自动完成这些工作,甚至能侦听数据源的更改事件。
|
2.
|
ASP.NET 2.0 引入了新的数据绑定控件,这些控件能自动使用数据源的功能,例如排序、分页、更新、插入和删除。
|
在 ASP.NET v1.x 中,页面开发人员需要手动处理数据绑定控件事件,编写代码来执行这些操作。而在 ASP.NET 2.0 中,数据绑定控件直接使用数据源的功能。当然,页面开发人员仍能处理适当的事件以自定义这些操作的处理;例如,验证输入。
ASP.NET 2.0 支持多种不同控件丰富的数据绑定。例如,能够将一个 XML 数据源绑定到 <
ASP:DropDownList>、<
ASP:DataList>、<
ASP: GridView> 以及许多其他的数据控件。