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>
下面的代码示例演示如何通过访问对象的静态成员来显示有关 RootNode 和 CurrentNode 属性的信息来使用 SiteMap 对象。 将其与 控件呈现 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>
注解
网站地图与 SiteMapDataSource、 SiteMapPath和其他控件结合使用,以呈现有效的导航界面,供用户浏览网站。 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 属性时发生。 |