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