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 不能动态地连接到源文件。
在ASP.NET 2.0中绑定控件 ASP.NET 2.0 允许将下拉列表绑定到 XML 数据源或数据库,而无需编写任何代码。如果更新基础数据,它能够确保缓存值自动刷新。
要绑定控件,首先需要创建一个数据源。可以手动编写数据源定义代码,或使用 Configure Data Source Wizard。
图 4a.配置 ObjectDataSource 向导图 4b.配置 XmlDataSource 向导 XMLDataSource 配置向导在 Web.config 文件中生成了下面的代码。
<asp:xmldatasource id="XmlDataSource1" datafile="msdn.xml" xpath="rss/channel/item" runat="server" /> |
一旦建立了数据源,就能够将数据绑定到控件。下列代码显示如何将 XML 数据源绑定到下拉列表控件。
<asp:dropdownlist id="DropDownList1" runat="server" datatextfield="state" datasourceid="XMLDataSource1" autopostback="true" /> |
请注意,ASP.NET 1.x 和 ASP.NET 2.0 中数据绑定的主要区别在于提供程序模型是否自动同步发生了更改的数据。换句话说,由于在数据源中置入了一个事件模型,如果修改支持数据源的数据,则自动更新绑定控件。
数据绑定控件 ASP.NET 2.0 引入了几个用于显示数据的新控件。这些新控件提供了一些比 ASP.NET 1.1 的
DataGrid 控件更优越的增强功能。
GridView 控件 ASP.NET 1.1 的
DataGrid 控件功能强大,使用灵活,允许显示结构化数据,无需编写大量代码。但是,如果要操作
DataGrid 的内容(例如,编辑或对返回行进行排序),需要编写适量的代码,自定义控件并提供这些行为。
GridView 与
DataGrid 控件相似;但是,您也能够通过向导一步步声明性地配置控件,启用像编辑和显示多页行数据这样的通用任务。
配置 GridView 为了说明实现上述功能多么轻松,请思考这个例子:根据下拉列表的选择项显示查询结果。只需将
GridView 控件拖放到页面上,配置控件以根据下拉列表的选择项自动显示结果。
图 5. 将 GridView 绑定到 DropDown 列表 要配置
GridView 控件,您必须通过 Configure Data Source Wizard 将它绑定到数据源。图 6 还显示
DataGrid 对象提供的 Enable Paging、Enable Sorting 和 Enable Selection 选项。
在 Configure Data Source 窗口中,选择适当的表格,然后选择所需的元素。窗口底部显示自动生成的 SQL 查询语句。
图 6. 编辑 SQL 数据源 下一步,单击
WHERE 按钮,配置
GridView 中显示的记录的条件;在下面的窗口中选择 patientID 列,设置操作符和源选项。当源选项设置为
Control 时,当前页面中的所有控件将自动填充到
Parameter 属性的
Control ID 字段中。从列表中选择想要连接的控件。配置好参数和默认值(如果需要)后,单击
Add 按钮,再单击
OK 按钮进行确认。
图 7. 查询编辑器对话框 生成的
select 语句可通过 Configure DataSource 窗口查看。
在 ASP 和 ASP.NET 应用程序中,必须编写代码完成所有这些过程,还要编写 HTML 代码来显示格式化的结果。新的
GridView 控件生成了以下结果,没有附加任何代码(请注意,
Edit 和
Delete 链接是自动可见的,并注意生成的 SQL):
图 8. 绑定到下拉列表的 GridView 控件显示的结果