科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件ASP.NET 2.0中的数据访问控件简析(5)

ASP.NET 2.0中的数据访问控件简析(5)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

数据访问一直是开发 Web 应用程序的一个关键问题。现在,大多数复杂的应用程序都可以利用 ASP.NET 2.0 提供的数据访问工具。从体系结构和机制上限制 ASP.NET 1.x 执行的绑定和缓存问题,在 ASP.NET 2.0 中都得以解决了。

作者:msdn 来源:msdn 2007年9月2日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
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 提供了一些数据绑定控件,例如 DataGridDataListDropDownList 等。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> 以及许多其他的数据控件。

ASP.NET 2.0 中的数据绑定

传统的应用程序需要编写代码来绑定数据。例如,要在传统的 ASP 中填充下拉列表,或对页面中的值进行硬编码(如下所示),或编写代码来连接数据库,检索数据,再填充下拉列表。如果手动填充下拉列表,则每次更新数据时,必须更改代码(手动)。

<select size="1" name="dropdown_menu">

<option value="1" >test_data1</option>

<option value="2">test_data2</option>

<option value="3">test_data3</option>

<option value="4">test_data4</option>

</select>

如果通过访问数据库表的方式填充列表,则不仅需要编写代码来检索信息,而且每次加载页面时,应用程序都需要访问数据库,或在应用程序级或会话级缓存信息。

另一方面,ASP.NET 1.1 允许将控件绑定到数据库表和 XML 文档。但是,在 ASP.NET 1.1 中,如果要绑定到一个 XML 数据源,需要将 XML 转换为 DataSet(本文前面作过概述)。一旦获得转换后的 DataSet,只要将 DataSet 绑定到控件上即可。

//C# code

listbox.DataSource= dataset.Tables[0];

listbox.DataTextField = "Name";

listbox.DataValueField = "ID";

listbox.DataBind()

//VB Code

listbox.DataSource= dataset.Tables(0)

listbox.DataTextField = "Name"

listbox.DataValueField = "ID"

listbox.DataBind()

但是,每此更新 XML 数据源,必须重新将控件绑定到一个新的 DataSet,这是因为 DataSet 不能动态地连接到源文件。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章