Condividi tramite


SiteMap.RootNode Proprietà

Definizione

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

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

Valore della proprietà

Oggetto SiteMapNode che rappresenta la pagina di primo livello della struttura di navigazione del sito; in caso contrario, , nullse la rimozione della sicurezza è abilitata e il nodo non può essere restituito all'utente corrente.

Eccezioni

La funzionalità della mappa del sito non è abilitata.

oppure

viene RootNode risolto in null, che si verifica se la rimozione della sicurezza è abilitata e il nodo radice non è visibile all'utente corrente.

Il provider predefinito specificato nella configurazione non esiste.

La funzionalità è supportata solo quando è in esecuzione con attendibilità bassa o 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 RootNodeoggetto .

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, in base alla progettazione. 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