SiteMap.RootNode Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 .