ASP.NET - 使用 XmlDataSource 控件筛选数据

      可通过将 XmlDataSource 控件的 XPath 属性设置为 XPath 筛选表达式,来筛选该控件公开的 XML 数据。如果已指定可扩展样式表语言 (XSL) 样式表来转换 XmlDataSource 控件公开的数据,则在转换后会应用 XPath 筛选表达式。

下面的代码示例演示绑定到 TreeView 控件的 XmlDataSource 控件。XML 数据是使用 XPath 查询筛选的。

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<script runat="server">

 

void SelectRegion(object sender, EventArgs e)

{

  if (RegionDropDownList.SelectedValue == "(Show All)")

    PeopleDataSource.XPath = "/People/Person";

  else

  {

    string selectedValue = "";

 

    switch (RegionDropDownList.SelectedValue)

    {

      case "CA":

        selectedValue = "CA";

        break;

      case "HI":

        selectedValue = "HI";

        break;

      case "WA":

        selectedValue = "WA";

        break;

      default:

        // Invalid value.

        break;

    }

 

    PeopleDataSource.XPath = "/People/Person[Address/Region='" + selectedValue + "']";

  }

 

  PeopleTreeView.DataBind();

}

 

</script>

 

<html  >

  <head runat="server">

    <title>ASP.NET Example</title>

</head>

<body>

    <form id="form1" runat="server">

      <table border="0" cellpadding="3">

        <tr>

          <td valign="top">

            <b>Select Region:</b>

            <asp:DropDownList runat="server" id="RegionDropDownList" AutoPostBack="True"

                              OnSelectedIndexChanged="SelectRegion">                             

              <asp:ListItem Selected="True">(Show All)</asp:ListItem>

              <asp:ListItem>CA</asp:ListItem>

              <asp:ListItem>HI</asp:ListItem>

              <asp:ListItem>WA</asp:ListItem>

            </asp:DropDownList>

          </td>

          <td valign="top">

            <asp:XmlDataSource

              id="PeopleDataSource"

              runat="server"

              XPath="/People/Person"

              DataFile="~/App_Data/people.xml" />

 

            <asp:TreeView

              id="PeopleTreeView"

              runat="server"

              DataSourceID="PeopleDataSource">

              <DataBindings>

                <asp:TreeNodeBinding DataMember="LastName"    TextField="#InnerText" />

                <asp:TreeNodeBinding DataMember="FirstName"   TextField="#InnerText" />

                <asp:TreeNodeBinding DataMember="Street"      TextField="#InnerText" />

                <asp:TreeNodeBinding DataMember="City"        TextField="#InnerText" />

                <asp:TreeNodeBinding DataMember="Region"      TextField="#InnerText" />

                <asp:TreeNodeBinding DataMember="ZipCode"     TextField="#InnerText" />

                <asp:TreeNodeBinding DataMember="Title"       TextField="#InnerText" />

                <asp:TreeNodeBinding DataMember="Description" TextField="#InnerText" />

              </DataBindings>

            </asp:TreeView>

          </td>

        </tr>

      </table>

    </form>

  </body>

</html>

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值