SiteMap Класс

Определение

Класс SiteMap — это хранимое в памяти представление структуры переходов узла, которая предоставляется одним или несколькими поставщиками карты веб-узла.The SiteMap class is an in-memory representation of the navigation structure for a site, which is provided by one or more site map providers. Этот класс не наследуется.This class cannot be inherited.

public ref class SiteMap abstract sealed
public static class SiteMap
type SiteMap = class
Public Class SiteMap
Наследование
SiteMap

Примеры

Этот раздел содержит два примера кода.This section contains two code examples. В первом примере кода показано, как объявить поставщика карт узла в файле Web. config.The first code example demonstrates how to declare a site map provider in a Web.config file. Во втором примере кода показано, как использовать SiteMap объект.The second code example demonstrates how to use a SiteMap object.

Следующий пример кода — это раздел конфигурации Web. config, демонстрирующий XmlSiteMapProvider объявление объекта в качестве объекта по умолчанию. SiteMapProviderThe following code example is a Web.config configuration section that demonstrates how an XmlSiteMapProvider object is declared as the default SiteMapProvider object.

<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 о свойствах и. CurrentNodeThe following code example demonstrates how to use the SiteMap object by accessing its static members to display information about the RootNode and CurrentNode properties. Сравните его с выходными данными, отображаемыми SiteMapPath элементом управления.Compare it to the output that is rendered by the SiteMapPath control.

<%@ 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и для отрисовки эффективного интерфейса навигации для перехода пользователей на веб-сайт.Site maps are used in conjunction with the SiteMapDataSource, SiteMapPath, and other controls to render an effective navigation interface for users to navigate a Web site. Объект — это компонент инфраструктуры навигации на сайте ASP.NET, который предоставляет доступ к сведениям о карте узла только для чтения для разработчиков страниц и элементов управления, SiteMapDataSource использующих навигацию и элементы управления. SiteMapA SiteMap object is a component of the ASP.NET site navigation infrastructure that provides access to read-only site map information for page and control developers using navigation and SiteMapDataSource controls. SiteMapProvider К другим компонентам инфраструктуры навигации ASP.NET узла относятся классы и XmlSiteMapProvider , файл Web. Sitemap и различные SiteMap элементы управления, работающие с классом, например SiteMapPath элемент управления, для отрисовки содержимого. и меню.Other components of the ASP.NET site navigation infrastructure include the SiteMapProvider and XmlSiteMapProvider classes, the Web.sitemap file, and the various controls that work with the SiteMap class, such as the SiteMapPath control, to render content and menus.

SiteMap Имеет несколько функций:The SiteMap has several functions:

  • Он предоставляет корневой узел иерархии навигации по сайту (может быть только один корневой узел).It provides the root node of the site navigation hierarchy (there can be only one root node).

  • Он определяет, какой поставщик карт узла является основным, или по умолчанию — поставщиком.It identifies which site map provider is the principal, or default, provider.

  • Он отслеживает все объекты поставщика, которые используются для создания SiteMap.It keeps track of all the provider objects that are used to create the SiteMap.

По SiteMap сути, это контейнер для иерархической SiteMapNode коллекции объектов.Fundamentally, the SiteMap is a container for a hierarchical collection of SiteMapNode objects. SiteMap Тем не менее, не поддерживает связи между узлами; вместо этого он делегирует его поставщикам карт узла.However, the SiteMap does not maintain the relationships between the nodes; rather, it delegates this to the site map providers. Объект SiteMap выступает в качестве интерфейса для данных навигации по сайту (в SiteMapNode форме объектов), который удерживается этими поставщиками карты веб-узла.The SiteMap acts as an interface to the site navigation information (in the form of SiteMapNode objects) that is held by these site map providers. Он отслеживает поставщиков, у которых есть доступ к данным навигации по веб-узлу, и Providers предоставляет коллекцию.It keeps track of the providers from which it can access site navigation data and exposes its Providers collection. Поставщик может хранить сведения о карте сайта любым способом SiteMapProvider SiteMap , если он расширяет абстрактный класс, он может быть инициализирован из него успешно.A provider can store its site map information in any way - as long as it extends the SiteMapProvider abstract class, the SiteMap class can be initialized successfully from it.

Поставщик по умолчанию для SiteMap класса XmlSiteMapProvider — это класс, который работает с XML-файлом конфигурации Web. sitemap.The default provider for the SiteMap class is the XmlSiteMapProvider class, which works with an XML configuration file, Web.sitemap. Однако можно написать собственный SiteMapProvider объект и использовать его для инициализации схемы сайта для сайта.However, you can write your own SiteMapProvider object, and use it to initialize the site map for your site. Пример пользовательского поставщика карт веб-узла см. в разделе SiteMapProvider.For an example of a custom site map provider, see SiteMapProvider.

Указана конфигурация схемы сайта по умолчанию, которая управляет конфигурацией навигации сайта.A default site map configuration is specified that manages the site navigation configuration. Эту конфигурацию можно переопределить в файле Web. config, если вы решили создать собственный поставщик карт узла.You can override this configuration in the Web.config file, should you choose to write your own site map provider.

SiteMap Класс предоставляет только статические члены для повышения производительности, и к нему можно обращаться в любое время на определенном сайте из веб-формы или серверного веб-элемента управления.The SiteMap class offers only static members for performance and it can be accessed at any time in a given site from a Web Form or Web server control.

Свойства

CurrentNode

Возвращает элемент управления SiteMapNode, представляющий запрашиваемую в данный момент страницу.Gets a SiteMapNode control that represents the currently requested page.

Enabled

Возвращает логическое значение, показывающее, указан ли поставщик карты веб-узла в файле Web.config и разрешен ли он.Gets a Boolean value indicating if a site map provider is specified in the Web.config file and if the site map provider is enabled.

Provider

Возвращает объект SiteMapProvider, используемый по умолчанию для текущей карты веб-узла.Gets the default SiteMapProvider object for the current site map.

Providers

Возвращает доступную только для чтения коллекцию именованных объектов SiteMapProvider, которые доступны в классе SiteMap.Gets a read-only collection of named SiteMapProvider objects that are available to the SiteMap class.

RootNode

Возвращает объект SiteMapNode, который представляет страницу верхнего уровня структуры переходов веб-узла.Gets a SiteMapNode object that represents the top-level page of the navigation structure for the site.

События

SiteMapResolve

Генерируется при доступе к свойству CurrentNode.Occurs when the CurrentNode property is accessed.

Применяется к

Дополнительно