Condividi tramite


SiteMap.RootNode Proprietà

Definizione

Ottiene un oggetto SiteMapNode che rappresenta la pagina di primo livello della struttura di navigazione nel sito.

public:
 static property System::Web::SiteMapNode ^ RootNode { System::Web::SiteMapNode ^ get(); };
public static System.Web.SiteMapNode RootNode { get; }
member this.RootNode : System.Web.SiteMapNode
Public Shared ReadOnly Property RootNode As SiteMapNode

Valore della proprietà

SiteMapNode

Oggetto SiteMapNode che rappresenta la pagina di livello superiore della struttura di navigazione nel sito; in caso contrario, null, se è attivata la rimozione di sicurezza e il nodo non può essere restituito all'utente corrente.

Eccezioni

La funzionalità relativa alla mappa del sito non è attivata.

-oppure- L'elemento RootNode si risolve in null, che si verifica se è attivata la rimozione di sicurezza e il nodo radice non è visibile all'utente corrente.

Il provider predefinito specificato nella configurazione non esiste.

La funzionalità è supportata solo quando in esecuzione in modalità di attendibilità bassa o in una modalità di livello superiore.

Esempio

Nell'esempio di codice seguente viene illustrato come utilizzare la RootNode proprietà per recuperare l'oggetto SiteMapNode che rappresenta il nodo radice del sito, indipendentemente dalla posizione corrente nella gerarchia di pagine.

<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>
<script runat="server">

Private Sub Page_Load(sender As Object, e As 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>

Commenti

La SiteMap classe recupera la RootNode proprietà richiedendola dal provider. Se è presente una gerarchia del provider, la SiteMap classe recupera il nodo radice del provider radice nella gerarchia. Per accedere al nodo radice del provider predefinito, chiamare la Provider proprietà , che recupera sia il provider predefinito che la relativa RootNode proprietà.

L'oggetto XmlSiteMapProvider , che è il provider predefinito per la SiteMap classe , supporta solo un oggetto RootNode.

Se si implementa la propria SiteMapProvider classe ed si esegue l'override della proprietà astratta RootNode , è necessario fornire la propria implementazione per tenere traccia della RootNode proprietà dell'istanza SiteMapNode .

Il nodo radice deve essere visibile a tutti gli utenti, per impostazione predefinita. Se il nodo radice non è visibile a tutti gli utenti quando è abilitato il taglio della sicurezza, l'accesso alla RootNode proprietà potrebbe causare un'eccezione InvalidOperationException .

Si applica a

Vedi anche