您的位置:首页 > 编程语言 > ASP

ASP.NET - 将表格控件绑定到 XmlDataSource 控件

2009-12-15 09:17 387 查看
XmlDataSource 控件主要用于将分层的 XML 数据公开给诸如 TreeView 或 Menu 控件等绑定控件。还可以将 GridView 或 DataList 控件等表格数据绑定控件绑定到 XmlDataSource 控件。

一、绑定到 XML 数据中的字段
在将表格数据绑定控件绑定到 XmlDataSource 控件时,该控件仅呈现 XML 层次结构的第一级。XmlDataSource 控件将第一级节点的属性公开为数据表中的等效列。因此,您可以将第一级节点中的属性名称指定为 BoundField 对象的 DataField 的名称。也可以在控件模板的 Eval 数据绑定表达式中指定属性名称。

二、使用 XPath 方法绑定到 XML 层次结构
使用表格控件,可以通过 Eval 或 Bind 方法将模板中的控件绑定到数据。如果要将表格控件绑定到 XmlDataSource 控件,还可以使用 XPath 方法,从而能够为只读数据绑定指定 XPath 查询。
XPath 数据绑定方法导航 XML 层次结构,并从位于该层次结构任意处的节点或属性中返回值。使用 XPath 数据绑定方法时,需传递一个 XPath 查询和一个可选的参数来指定返回字符串的格式。字符串格式参数使用为 String 类的 Format 方法定义的语法。
下面的代码示例演示绑定到 XmlDataSource 控件的 DataList 控件。模板中的数据绑定表达式使用 XPath 方法从 XML 数据中返回值。
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:XmlDataSource
id="PeopleDataSource"
runat="server"
XPath="/People/Person"
DataFile="~/App_Data/people.xml" />

<asp:DataList
id="PeopleDataList"
DataSourceID="PeopleDataSource"
Runat="server">

<ItemTemplate>
<table cellpadding="4" cellspacing="4">
<tr>
<td style="vertical-align:top; width:120">
<asp:Label id="LastNameLabel" Text='<%# XPath("Name/LastName")%>' runat="server" />,
<asp:Label id="FirstNameLabel" Text='<%# XPath("Name/FirstName")%>' runat="server" />
</td>
<td valign="top">
<asp:Label id="StreetLabel" Text='<%# XPath("Address/Street") %>' runat="server" /><br />
<asp:Label id="CityLabel" Text='<%# XPath("Address/City") %>' runat="server" />,
<asp:Label id="RegionLabel" Text='<%# XPath("Address/Region") %>' runat="server" />
<asp:Label id="ZipCodeLabel" Text='<%# XPath("Address/ZipCode") %>' runat="server" />
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
</form>
</body>
</html>

三、使用 XPathSelect 返回所选节点
可以将项模板中的嵌套表格数据控件绑定到从 XmlDataSource 控件提供的数据中选择的节点列表。为此,可以使用 XPathSelect 方法。XPathSelect 方法返回与 XPath 表达式匹配的节点列表,表格数据控件可以像使用数据记录集合那样使用该列表。下面的示例演示如何将 XPathSelect 方法与嵌套的 DataList 控件一起使用,以显示 XML 层次结构中的 Order_Details 节点。
<asp:XmlDataSource
id="OrdersDataSource"
runat="server"
DataFile="~/App_Data/orders.xml" />

<asp:DataList
id="OrdersDataList"
DataSourceID="OrdersDataSource"
Runat="server">

<ItemTemplate>
Order ID: <asp:Label id="OrderIDLabel" runat="server"
Text='<%# XPath("OrderID") %> /><BR>

<asp:DataList id="ProductsDataList" runat="server"
DataSource='<%# XPathSelect("Order_Details") %>' >
<ItemTemplate>
<br>Product ID:<%# XPath("ProductID")%>
<br>Quantity: <%# XPath("Quantity") %>
</ItemTemplate>
</asp:DataList>

</ItemTemplate>
</asp:DataList>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: