ASP.NET - 如何:在非分层 Web 服务器控件中显示站点地图数据

本文介绍如何使用ASP.NET中的DropDownList控件绑定站点地图数据,并通过事件处理实现页面跳转功能。示例代码展示了如何配置SiteMapDataSource和DropDownList控件以显示站点地图中的链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      站点地图数据从本质上而言是分层的,这意味着每个节点可以包含零个或多个子节点。TreeView Menu 控件就是用来处理分层数据的。但是,也可以将站点地图数据绑定到非分层控件,例如 DropDownListCheckBoxList 和其他以线性或平面格式显示数据的控件。

说明: 只有 SiteMapPath 控件和支持 INavigateUIData 接口的控件将站点地图节点呈现为链接。

 

示例

下面的代码示例使用 DropDownList 控件显示来自 Web.sitemap 文件的站点地图数据。

当客户端在下拉列表中选择某项时,浏览器会被重定向到选定的页。这是通过在 OnSelectedIndexChanged 事件处理程序中调用 Redirect 方法来实现的。

如果将此代码示例放置在母版页中,则 SiteMapDataSource 控件中的 StartFromCurrentNode 属性将确保下拉列表始终显示一个站点地图,此站点地图从当前执行的页开始。

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

 

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

 

<script runat="server">

  void _OnSelectedIndexChanged(Object sender, EventArgs e)

  {

    Response.Redirect(DropDownList1.SelectedItem.Value);

  }

</script>

 

<html  >

<head runat="server">

    <title>DropDownList Bound to SiteMapDataSource</title>

</head>

<body>

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

    <div>

      <asp:SiteMapDataSource ID="SiteMapDataSource1" Runat="Server"

          StartFromCurrentNode="true"

          ShowStartingNode="false" />

      <asp:DropDownList ID="DropDownList1" Runat="Server"

          DataSourceID="SiteMapDataSource1"

          AutoPostBack="True"

          DataTextField="Title"

          DataValueField="Url"

          OnSelectedIndexChanged="_OnSelectedIndexChanged" >

      </asp:DropDownList>

    </div>

    </form>

</body>

</html>

      如果页中不包含任何子节点,则下拉列表将是空的。如果客户端选择了某项,但在 Web.sitemap 文件中未设置与之相应的 URL 属性,则客户端将被重定向到应用程序的主页。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值