SiteMap 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
该 SiteMap 类是网站导航结构的内存中表示形式,由一个或多个网站地图提供程序提供。 此类不能被继承。
public ref class SiteMap abstract sealed
public static class SiteMap
type SiteMap = class
Public Class SiteMap
- 继承
-
SiteMap
示例
本部分包含两个代码示例。 第一个代码示例演示如何在 Web.config 文件中声明站点地图提供程序。 第二个 SiteMap 代码示例演示如何使用对象。
下面的代码示例是一个 Web.config 配置部分,演示如何 XmlSiteMapProvider 将对象声明为默认 SiteMapProvider 对象。
<siteMap defaultProvider="MyXmlSiteMapProvider" enabled="true">
<providers>
<add name="MyXmlSiteMapProvider"
description="The site map provider that reads in the .sitemap XML files."
type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
siteMapFile="my.sitemap" />
</providers>
</siteMap>
下面的代码示例演示如何 SiteMap 通过访问对象的静态成员来显示有关 RootNode 和 CurrentNode 属性的信息。 将其与控件呈现的 SiteMapPath 输出进行比较。
<%@ 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">
private void Page_Load(object sender, System.EventArgs e)
{
// Examine the CurrentNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.CurrentNode.Title + "<br />");
Response.Write("<font COLOR='red'>" + SiteMap.CurrentNode.Url + "</font><br />");
// What nodes are children of the CurrentNode?
if (SiteMap.CurrentNode.HasChildNodes) {
IEnumerator childNodesEnumerator = SiteMap.CurrentNode.ChildNodes.GetEnumerator();
while (childNodesEnumerator.MoveNext()) {
// Prints the Title of each node.
Response.Write(childNodesEnumerator.Current.ToString() + "<br />");
}
}
Response.Write("<hr />");
// Examine the RootNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.RootNode.Title + "<br />");
Response.Write(SiteMap.RootNode.Url + "<br />");
// What nodes are children of the RootNode?
if (SiteMap.RootNode.HasChildNodes) {
IEnumerator rootNodesChildrenEnumerator = SiteMap.RootNode.ChildNodes.GetEnumerator();
while (rootNodesChildrenEnumerator.MoveNext()) {
// Prints the Title of each node.
Response.Write(rootNodesChildrenEnumerator.Current.ToString() + "<br />");
}
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="Form1" runat="server">
<asp:SiteMapPath
runat="server"
ID="SiteMapPath1"
ShowToolTips="false"/>
</form>
</body>
</html>
<%@ Page language="VB"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Private Sub Page_Load(sender As Object, e As System.EventArgs)
' Examine the CurrentNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.CurrentNode.Title & "<br />")
Response.Write("<font COLOR='red'>" & SiteMap.CurrentNode.Url & "</font><br />")
' What nodes are children of the CurrentNode?
If (SiteMap.CurrentNode.HasChildNodes) Then
Dim childNodesEnumerator As IEnumerator = SiteMap.CurrentNode.ChildNodes.GetEnumerator()
While (childNodesEnumerator.MoveNext())
' Prints the Title of each node.
Response.Write(childNodesEnumerator.Current.ToString() & "<br />")
End While
End If
Response.Write("<hr />")
' Examine the RootNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.RootNode.Title & "<br />")
Response.Write(SiteMap.RootNode.Url & "<br />")
' What nodes are children of the RootNode?
If (SiteMap.RootNode.HasChildNodes) Then
Dim rootNodesChildrenEnumerator As IEnumerator = SiteMap.RootNode.ChildNodes.GetEnumerator()
While (rootNodesChildrenEnumerator.MoveNext())
' Prints the Title of each node.
Response.Write(rootNodesChildrenEnumerator.Current.ToString() & "<br />")
End While
End If
End Sub ' Page_Load
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="Form1" runat="server">
<asp:SiteMapPath
runat="server"
ID="SiteMapPath1"
ShowToolTips="false"/>
</form>
</body>
</html>
注解
网站地图与 和其他控件结合使用SiteMapDataSourceSiteMapPath来呈现有效的导航界面,供用户导航网站。 SiteMap 对象是 ASP.NET 网站导航基础结构的一个组件,它使用导航和 SiteMapDataSource 控件为页面和控件开发人员提供对只读网站地图信息的访问权限。 ASP.NET 网站导航基础结构的其他组件包括 SiteMapProvider 和 XmlSiteMapProvider 类、Web.sitemap 文件和处理 SiteMap 类的各种控件(如 SiteMapPath 控件)来呈现内容和菜单。
有多个 SiteMap 函数:
它提供站点导航层次结构的根节点(只能有一个根节点)。
它标识哪个站点地图提供程序是主体或默认提供程序。
它跟踪用于创建 SiteMap该提供程序的所有提供程序对象。
从根本上讲, SiteMap 它是对象的分层集合的 SiteMapNode 容器。 但是,它 SiteMap 不维护节点之间的关系;而是将其委托给站点地图提供程序。 充当 SiteMap 这些网站地图提供程序持有的网站导航信息的接口(以对象形式 SiteMapNode )。 它跟踪可以访问网站导航数据的提供程序,并公开其 Providers 集合。 提供程序可以以任何方式存储其站点地图信息 - 只要它扩展 SiteMapProvider 抽象类, SiteMap 就可以从中成功初始化该类。
类的默认提供程序 SiteMap 是 XmlSiteMapProvider 可用于 XML 配置文件 Web.sitemap 的类。 但是,可以编写自己的 SiteMapProvider 对象,并使用它来初始化站点的站点地图。 有关自定义网站地图提供程序的示例,请参阅 SiteMapProvider。
指定了管理站点导航配置的默认站点地图配置。 如果选择编写自己的站点地图提供程序,则可以在 Web.config 文件中替代此配置。
该 SiteMap 类仅提供静态成员来获得性能,并且可以随时从 Web 窗体或 Web 服务器控件访问给定站点。
属性
| 名称 | 说明 |
|---|---|
| CurrentNode |
获取表示 SiteMapNode 当前请求页的控件。 |
| Enabled |
获取一个布尔值,该值指示是否在 Web.config 文件中指定了站点地图提供程序,以及是否启用了站点地图提供程序。 |
| Provider |
获取当前站点地图的默认 SiteMapProvider 对象。 |
| Providers |
获取可用于SiteMapProvider类的命名SiteMap对象的只读集合。 |
| RootNode |
获取一个 SiteMapNode 对象,该对象表示网站的导航结构的顶层页面。 |
活动
| 名称 | 说明 |
|---|---|
| SiteMapResolve |
访问属性时 CurrentNode 发生。 |