Valuta il contenuto e lascia un commento
MSDN
MSDN Library
System.Web
Classe SiteMap
This page is specific to
Microsoft Visual Studio 2005/.NET Framework 2.0

Other versions are also available for the following:
Riferimento a .NET Framework
Classe SiteMap

Nota: questa classe è stata introdotta con .NET Framework versione 2.0.

La classe SiteMap è una rappresentazione in memoria della struttura di spostamento in un sito, fornita da uno o più provider della mappa del sito. Questa classe non può essere ereditata.

Spazio dei nomi: System.Web
Assembly: System.Web (in system.web.dll)

Visual Basic - (Dichiarazione)
Public NotInheritable Class SiteMap
Visual Basic (Utilizzo)
È possibile accedere direttamente ai membri di una classe Static senza un'istanza della classe.
C#
public static class SiteMap
C++
public ref class SiteMap abstract sealed
J#
public final class SiteMap
JScript
public final class SiteMap

Le mappe del sito sono utilizzate unitamente a SiteMapDataSource, SiteMapPath e ad altri controlli per effettuare il rendering di un'interfaccia effettiva di spostamento per utenti perché si spostino in un sito Web. Un oggetto SiteMap è un componente dell'infrastruttura di spostamento nel sito ASP.NET che fornisce accesso alle informazioni in sola lettura sulla mappa del sito per gli sviluppatori di pagine e di controlli, utilizzando i controlli SiteMapDataSource e di spostamento. Altri componenti dell'infrastruttura includono le classi SiteMapProvider e XmlSiteMapProvider, il file Web.sitemap e vari controlli che utilizzano la classe SiteMap, ad esempio il controllo SiteMapPath, per effettuare il rendering dei contenuti e dei menu.

La classe SiteMap dispone di diverse funzioni:

  • Fornisce il nodo principale della gerarchia di spostamento nel sito (può esistere un unico nodo principale).

  • Identifica quale provider di mappa del sito è quello principale o predefinito.

  • Tiene traccia di tutti gli oggetti provider utilizzati per creare la classe SiteMap.

Sostanzialmente, la classe SiteMap è un contenitore di un insieme gerarchico di oggetti SiteMapNode. Tuttavia SiteMap non mantiene relazioni tra i nodi, piuttosto delega questa funzione ai provider della mappa del sito. La classe SiteMap svolge la funzione di interfaccia alle informazioni sullo spostamento nel sito (come oggetti SiteMapNode) contenute nei provider della mappa del sito. Tiene traccia dei provider dai quali è possibile accedere ai dati di spostamento nel sito ed espone il relativo insieme Providers. Un provider può memorizzare le relative informazioni sulla mappa del sito in qualsiasi modo purché estenda la classe astratta SiteMapProvider; da tale classe può essere inizializzata con esito positivo la classe SiteMap.

Il provider predefinito della classe SiteMap è la classe XmlSiteMapProvider che utilizza un file di configurazione XML ovvero Web.sitemap. È tuttavia possibile scrivere il proprio oggetto SiteMapProvider e utilizzarlo per inizializzare la mappa del sito per il proprio sito. Per un esempio di un provider della mappa del sito personalizzato, vedere SiteMapProvider.

Viene specificata una configurazione della mappa del sito predefinita che gestisce la configurazione di spostamento nel sito. È possibile sottoporre a override questa configurazione nel file Web.config, se si sceglie di scrivere il proprio provider della mappa del sito.

La classe SiteMap offre solo membri statici per le prestazioni e l'accesso è possibile in qualsiasi momento in un determinato sito mediante un Web Form o un controllo server Web.

TopicLocation
Procedura: aggiungere l'esplorazione semplice di sitiGenerazione di applicazioni Web ASP.NET
Procedura: aggiungere l'esplorazione semplice di sitiGenerazione di applicazioni Web ASP.NET in Visual Studio
Procedura: configurare più mappe del sito e provider di mappa del sitoGenerazione di applicazioni Web ASP.NET
Procedura: configurare più mappe del sito e provider di mappa del sitoGenerazione di applicazioni Web ASP.NET in Visual Studio
Procedura: enumerare i nodi della mappa del sito a livello di codiceGenerazione di applicazioni Web ASP.NET
Procedura: enumerare i nodi della mappa del sito a livello di codiceGenerazione di applicazioni Web ASP.NET in Visual Studio
Procedura: filtrare i nodi recuperati dai controlli server Web SiteMapDataSourceGenerazione di applicazioni Web ASP.NET
Procedura: filtrare i nodi recuperati dai controlli server Web SiteMapDataSourceGenerazione di applicazioni Web ASP.NET in Visual Studio
Procedura: implementare i provider della mappa del sito ASP.NETGenerazione di applicazioni Web ASP.NET
Procedura: implementare i provider della mappa del sito ASP.NETGenerazione di applicazioni Web ASP.NET in Visual Studio
Procedura: visualizzare i dati della mappa del sito in controlli server Web non gerarchiciGenerazione di applicazioni Web ASP.NET
Procedura: visualizzare i dati della mappa del sito in controlli server Web non gerarchiciGenerazione di applicazioni Web ASP.NET in Visual Studio

In questa sezione sono contenuti due esempi di codice. Nel primo esempio di codice viene illustrato come dichiarare un provider della mappa del sito in un file Web.config. Nel secondo esempio di codice viene illustrato come utilizzare un oggetto SiteMap.

Nell'esempio di codice riportato di seguito viene indicata una sezione della configurazione del file Web.config che illustra come un oggetto XmlSiteMapProvider viene dichiarato come oggetto SiteMapProvider predefinito.

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

Nell'esempio di codice riportato di seguito viene illustrato come utilizzare l'oggetto SiteMap mediante l'accesso ai relativi membri statici, per visualizzare le informazioni sulle proprietà RootNode e CurrentNode . Confrontarlo all'output sul quale viene effettuato il rendering mediante il controllo SiteMapPath.

Visual Basic
<%@ 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>
  <body>
    <form id="Form1" runat="server">
        <asp:SiteMapPath
            runat="server"
          ID="SiteMapPath1"
          ShowToolTips="false"/>

    </form>
  </body>
</HTML>
C#
<%@ 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>
  <body>
    <form id="Form1" runat="server">
      <asp:SiteMapPath
          runat="server"
        ID="SiteMapPath1"
        ShowToolTips="false"/>
    </form>
  </body>
</HTML>
System.Object
  System.Web.SiteMap
I membri statici pubblici (Shared in Visual Basic) di questo tipo sono validi per le operazioni multithreading. I membri di istanza non sono garantiti come thread safe.

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

.NET Framework

Supportato in: 2.0
Contenuti della community   Che cos'è Contenuti della community?
Aggiungi nuovo contenuto RSS  Annotazioni
Processing
© 2008 Microsoft Corporation. Tutti i diritti riservati. Condizioni per l'utilizzo  |  Marchi  |  Informativa sulla privacy
Page view tracker