SiteMap Klasse

Definition

Die SiteMap-Klasse ist eine im Speicher befindliche Darstellung der Navigationsstruktur einer Site, die von einem oder mehreren Siteübersichtsanbietern bereitgestellt wird. Diese Klasse kann nicht vererbt werden.

public ref class SiteMap abstract sealed
public static class SiteMap
type SiteMap = class
Public Class SiteMap
Vererbung
SiteMap

Beispiele

Dieser Abschnitt enthält zwei Codebeispiele. Im ersten Codebeispiel wird veranschaulicht, wie sie einen Siteübersichtsanbieter in einer Web.config-Datei deklarieren. Im zweiten Codebeispiel wird die Verwendung eines SiteMap -Objekts veranschaulicht.

Das folgende Codebeispiel ist ein Web.config Konfigurationsabschnitt, der veranschaulicht, wie ein XmlSiteMapProvider Objekt als Standardobjekt SiteMapProvider deklariert wird.

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

Im folgenden Codebeispiel wird veranschaulicht, wie das SiteMap -Objekt verwendet wird, indem auf seine statischen Member zugegriffen wird, um Informationen zu den RootNode Eigenschaften und CurrentNode anzuzeigen. Vergleichen Sie sie mit der Ausgabe, die SiteMapPath vom Steuerelement gerendert wird.

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

Hinweise

Websitekarten werden in Verbindung mit den Steuerelementen SiteMapDataSource, und verwendet, SiteMapPathum eine effektive Navigationsoberfläche für Benutzer zu rendern, die durch eine Website navigieren können. Ein SiteMap -Objekt ist eine Komponente der ASP.NET Websitenavigationsinfrastruktur, die Seiten- und Steuerungsentwicklern mithilfe von Navigation und SiteMapDataSource Steuerelementen Zugriff auf schreibgeschützte Websiteübersichtsinformationen bietet. Andere Komponenten der ASP.NET Websitenavigationsinfrastruktur sind die SiteMapProvider Klassen und XmlSiteMapProvider , die Datei Web.sitemap und die verschiedenen Steuerelemente, die mit der SiteMap Klasse arbeiten, z. B. das SiteMapPath -Steuerelement, um Inhalte und Menüs zu rendern.

Verfügt SiteMap über mehrere Funktionen:

  • Sie stellt den Stammknoten der Websitenavigationshierarchie bereit (es kann nur einen Stammknoten geben).

  • Er identifiziert, welcher Siteübersichtsanbieter der Prinzipal- oder Standardanbieter ist.

  • Es verfolgt alle Anbieterobjekte nach, die zum Erstellen von SiteMapverwendet werden.

Grundsätzlich ist der SiteMap ein Container für eine hierarchische Auflistung von SiteMapNode Objekten. Die SiteMap Beziehungen zwischen den Knoten werden jedoch nicht verwaltet, sondern an die Siteübersichtsanbieter delegiert. Dient SiteMap als Schnittstelle zu den Websitenavigationsinformationen (in Form von SiteMapNode Objekten), die von diesen Siteübersichtsanbietern gespeichert werden. Es verfolgt die Anbieter, von denen aus auf Websitenavigationsdaten zugegriffen werden kann, und macht seine Providers Sammlung verfügbar. Ein Anbieter kann seine Siteübersichtsinformationen in beliebiger Weise speichern. Solange die SiteMapProvider abstrakte Klasse erweitert wird, kann die SiteMap Klasse erfolgreich initialisiert werden.

Der Standardanbieter für die SiteMap -Klasse ist die -Klasse, die XmlSiteMapProvider mit der XML-Konfigurationsdatei Web.sitemap funktioniert. Sie können jedoch Ihr eigenes SiteMapProvider Objekt schreiben und es verwenden, um die Siteübersicht für Ihre Website zu initialisieren. Ein Beispiel für einen benutzerdefinierten Siteübersichtsanbieter finden Sie unter SiteMapProvider.

Es wird eine Standardkonfiguration für die Websiteübersicht angegeben, die die Konfiguration der Websitenavigation verwaltet. Sie können diese Konfiguration in der Web.config-Datei überschreiben, wenn Sie ihren eigenen Siteübersichtsanbieter schreiben möchten.

Die SiteMap -Klasse bietet nur statische Member für die Leistung und kann jederzeit in einer bestimmten Website von einem Webformular oder Webserversteuerelement aus darauf zugegriffen werden.

Eigenschaften

CurrentNode

Ruft ein SiteMapNode-Steuerelement ab, das die gerade angeforderte Seite darstellt.

Enabled

Ruft einen booleschen Wert ab, der angibt, ob ein Siteübersichtsanbieter in der Datei Web.config angegeben ist, und ob der Siteübersichtsanbieter aktiviert ist.

Provider

Ruft das SiteMapProvider-Standardobjekt für die aktuelle Siteübersicht ab.

Providers

Ruft eine schreibgeschützte Auflistung von genannten SiteMapProvider-Objekten ab, die der SiteMap-Klasse zur Verfügung stehen.

RootNode

Ruft ein SiteMapNode-Objekt ab, das die oberste Seite der Navigationsstruktur für die Site darstellt.

Ereignisse

SiteMapResolve

Tritt ein, wenn auf die CurrentNode-Eigenschaft zugegriffen wird.

Gilt für:

Weitere Informationen