将表格控件绑定到 XmlDataSource 控件

XmlDataSource 控件主要用于将分层的 XML 数据公开给诸如 TreeViewMenu 控件等绑定控件。还可以将 GridViewDataList 控件等表格数据绑定控件绑定到 XmlDataSource 控件。

绑定到 XML 数据中的字段

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

使用 XPath 方法将数据绑定到 XML 层次结构

使用表格控件,可以通过 EvalBind 方法将模板中的控件绑定到数据。如果要将表格控件绑定到 XmlDataSource 控件,还可以使用 XPath 方法,从而能够为只读数据绑定指定 XPath 查询。

XPath 数据绑定方法导航 XML 层次结构,并从位于该层次结构任意处的节点或属性中返回值。使用 XPath 数据绑定方法时,需传递一个 XPath 查询和一个可选的参数来指定返回字符串的格式。字符串格式参数使用为 String 类的 Format 方法定义的语法。

下面的代码示例演示绑定到 XmlDataSource 控件的 DataList 控件。模板中的数据绑定表达式使用 XPath 方法从 XML 数据中返回值。有关该示例中使用的 People.xml 文件的详细信息,请参见 XmlDataSource 控件概述

<%@ 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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值