SiteMap Klass

Definition

Klassen SiteMap är en minnesintern representation av navigeringsstrukturen för en plats, som tillhandahålls av en eller flera webbplatsöversiktsproviders. Det går inte att ärva den här klassen.

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

Exempel

Det här avsnittet innehåller två kodexempel. Det första kodexemplet visar hur du deklarerar en webbplatsöversiktsprovider i en Web.config fil. Det andra kodexemplet visar hur du använder ett SiteMap objekt.

Följande kodexempel är ett Web.config konfigurationsavsnitt som visar hur ett XmlSiteMapProvider objekt deklareras som standardobjekt 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>

Följande kodexempel visar hur du använder SiteMap objektet genom att komma åt dess statiska medlemmar för att visa information om RootNode egenskaperna och CurrentNode . Jämför med de utdata som återges av SiteMapPath kontrollen.

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

Kommentarer

Webbplatskartor används tillsammans med SiteMapDataSourcekontrollerna , SiteMapPathoch andra för att återge ett effektivt navigeringsgränssnitt för användare att navigera på en webbplats. Ett SiteMap-objekt är en komponent i ASP.NET webbplatsnavigeringsinfrastruktur som ger åtkomst till skrivskyddad webbplatsöversiktsinformation för sid- och kontrollutvecklare med hjälp av navigerings- och SiteMapDataSource kontroller. Andra komponenter i ASP.NET-platsnavigeringsinfrastrukturen är SiteMapProvider och XmlSiteMapProvider klasser, web.sitemap-filen och de olika kontroller som fungerar med klassen SiteMap, till exempel SiteMapPath kontroll, för att återge innehåll och menyer.

Har SiteMap flera funktioner:

  • Den tillhandahåller rotnoden i platsnavigeringshierarkin (det kan bara finnas en rotnod).

  • Den identifierar vilken webbplatsöversiktsprovider som är huvudnamn eller standardleverantör.

  • Den håller reda på alla providerobjekt som används för att skapa SiteMap.

SiteMap I grunden är en container för en hierarkisk samling SiteMapNode objekt. SiteMap Men underhåller inte relationerna mellan noderna. I stället delegeras detta till webbplatsöversiktsprovidrar. Fungerar SiteMap som ett gränssnitt till webbplatsnavigeringsinformationen (i form av SiteMapNode objekt) som lagras av dessa webbplatsöversiktsleverantörer. Den håller reda på de leverantörer som den kan komma åt webbplatsnavigeringsdata från och exponerar sin Providers samling. En provider kan lagra sin webbplatsöversiktsinformation på något sätt – så länge den utökar den SiteMapProvider abstrakta klassen SiteMap kan klassen initieras från den.

Standardprovidern SiteMap för klassen är XmlSiteMapProvider klassen, som fungerar med en XML-konfigurationsfil, Web.sitemap. Du kan dock skriva ett eget SiteMapProvider objekt och använda det för att initiera webbplatsöversikten för webbplatsen. Ett exempel på en anpassad webbplatsöversiktsprovider finns i SiteMapProvider.

En standardkonfiguration för platsöversikt har angetts som hanterar platsnavigeringskonfigurationen. Du kan åsidosätta den här konfigurationen i Web.config-filen om du väljer att skriva en egen webbplatsöversiktsprovider.

Klassen SiteMap erbjuder endast statiska medlemmar för prestanda och kan nås när som helst på en viss webbplats från en webbformulär- eller webbserverkontroll.

Egenskaper

Name Description
CurrentNode

Hämtar en SiteMapNode kontroll som representerar den begärda sidan.

Enabled

Hämtar ett booleskt värde som anger om en webbplatsöversiktsprovider anges i Web.config-filen och om webbplatsöversiktsprovidern är aktiverad.

Provider

Hämtar standardobjektet SiteMapProvider för den aktuella webbplatskartan.

Providers

Hämtar en skrivskyddad samling med namngivna SiteMapProvider objekt som är tillgängliga för SiteMap klassen.

RootNode

Hämtar ett SiteMapNode objekt som representerar den översta sidan i webbplatsens navigeringsstruktur.

Händelser

Name Description
SiteMapResolve

Inträffar när egenskapen CurrentNode används.

Gäller för

Se även