SiteMap Třída

Definice

Třída SiteMap je reprezentace navigační struktury webu v paměti, kterou poskytuje jeden nebo více zprostředkovatelů mapy webu. Tuto třídu nelze dědit.

public ref class SiteMap abstract sealed
public static class SiteMap
type SiteMap = class
Public Class SiteMap
Dědičnost
SiteMap

Příklady

Tato část obsahuje dva příklady kódu. První příklad kódu ukazuje, jak deklarovat zprostředkovatele mapy webu v souboru Web.config. Druhý příklad kódu ukazuje, jak použít SiteMap objekt.

Následující příklad kódu je oddíl konfigurace Web.config, který ukazuje, jak XmlSiteMapProvider je objekt deklarován jako výchozí SiteMapProvider objekt.

<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>  

Následující příklad kódu ukazuje, jak pomocí objektu SiteMap získat přístup k jeho statickým členům k zobrazení informací o vlastnostech RootNode a CurrentNode . Porovnejte ho s výstupem SiteMapPath , který ovládací prvek vykresluje.

<%@ 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>

Poznámky

Mapy webu se používají ve spojení s ovládacími SiteMapDataSourceprvky , SiteMapPatha dalšími ovládacími prvky k vykreslení efektivního navigačního rozhraní pro uživatele k navigaci na webu. Objekt SiteMap je součást navigační infrastruktury ASP.NET webu, která poskytuje přístup k informacím o mapě webu jen pro čtení pro vývojáře stránek a ovládacích prvků pomocí navigace a SiteMapDataSource ovládacích prvků. Mezi další součásti infrastruktury navigace ASP.NET webu patří SiteMapProvider třídy a XmlSiteMapProvider , soubor Web.sitemap a různé ovládací prvky, které pracují s SiteMap třídou, jako SiteMapPath je například ovládací prvek, vykreslují obsah a nabídky.

SiteMap několik funkcí:

  • Poskytuje kořenový uzel hierarchie navigace na webu (může existovat pouze jeden kořenový uzel).

  • Identifikuje, který zprostředkovatel mapy webu je hlavní nebo výchozí zprostředkovatel.

  • Sleduje všechny objekty zprostředkovatele, které se používají k vytvoření objektu SiteMap.

V podstatě SiteMap je kontejner pro hierarchickou kolekci SiteMapNode objektů. SiteMap Nástroj však neudržuje vztahy mezi uzly, ale deleguje je na zprostředkovatele mapy webu. Funguje SiteMap jako rozhraní pro informace o navigaci na webu (ve formě SiteMapNode objektů), které jsou uloženy těmito poskytovateli map webu. Sleduje poskytovatele, od kterých může přistupovat k datům navigace na webu, a zveřejňuje svoji Providers kolekci. Zprostředkovatel může ukládat informace o mapě webu jakýmkoli způsobem – pokud rozšíří SiteMapProvider abstraktní třídu, SiteMap lze z ní úspěšně inicializovat třídu.

Výchozím zprostředkovatelem SiteMap třídy je XmlSiteMapProvider třída, která pracuje s konfiguračním souborem XML Web.sitemap. Můžete ale napsat vlastní SiteMapProvider objekt a použít ho k inicializaci mapy webu pro váš web. Příklad vlastního zprostředkovatele mapy webu najdete v tématu SiteMapProvider.

Je zadána výchozí konfigurace mapy webu, která spravuje konfiguraci navigace na webu. Tuto konfiguraci můžete přepsat v souboru Web.config, pokud se rozhodnete zapsat vlastního zprostředkovatele mapy webu.

Třída SiteMap nabízí pouze statické členy pro výkon a lze k ní kdykoli na daném webu přistupovat z ovládacího prvku webového formuláře nebo webového serveru.

Vlastnosti

CurrentNode

Získá ovládací prvek SiteMapNode , který představuje aktuálně požadovanou stránku.

Enabled

Získá logickou hodnotu označující, zda je v souboru Web.config zadán zprostředkovatel mapy webu a zda je povoleno zprostředkovatele mapy webu.

Provider

Získá výchozí SiteMapProvider objekt pro aktuální mapu webu.

Providers

Získá jen pro čtení kolekce pojmenovaných SiteMapProvider objektů, které jsou k dispozici pro SiteMap třídu.

RootNode

SiteMapNode Získá objekt, který představuje stránku nejvyšší úrovně navigační struktury webu.

Událost

SiteMapResolve

Nastane při přístupu k CurrentNode vlastnosti.

Platí pro

Viz také