SiteMap.RootNode Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
SiteMapNode Pobiera obiekt reprezentujący stronę najwyższego poziomu struktury nawigacji dla witryny.
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
Wartość właściwości
Element reprezentujący stronę najwyższego poziomu struktury nawigacji witryny. W SiteMapNode przeciwnym razie null
, jeśli włączono przycinanie zabezpieczeń, a węzeł nie może zostać zwrócony bieżącemu użytkownikowi.
Wyjątki
Funkcja mapy witryny nie jest włączona.
-lub-
Jest RootNode rozpoznawany jako null
, który występuje, jeśli przycinanie zabezpieczeń jest włączone, a węzeł główny nie jest widoczny dla bieżącego użytkownika.
Domyślny dostawca określony w konfiguracji nie istnieje.
Ta funkcja jest obsługiwana tylko w przypadku uruchamiania w obszarze Niska relacja zaufania lub wyższa.
Przykłady
W poniższym przykładzie kodu pokazano, jak za pomocą RootNode właściwości pobrać SiteMapNode obiekt reprezentujący węzeł główny lokacji, niezależnie od bieżącej lokalizacji w hierarchii stron.
<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>
Uwagi
Klasa SiteMap pobiera RootNode właściwość, żądając jej od dostawcy. Jeśli istnieje hierarchia dostawcy, SiteMap klasa pobiera węzeł główny dostawcy głównego w hierarchii. Aby uzyskać dostęp do węzła głównego domyślnego dostawcy, wywołaj Provider właściwość , która pobiera zarówno domyślnego dostawcę, jak i jego RootNode właściwość.
Obiekt XmlSiteMapProvider , który jest domyślnym dostawcą klasy SiteMap , obsługuje tylko jeden RootNodeobiekt .
Jeśli zaimplementujesz własną SiteMapProvider klasę i zastąpisz właściwość abstrakcyjną RootNode , musisz podać własną implementację w celu śledzenia RootNode właściwości SiteMapNode wystąpienia.
Węzeł główny musi być widoczny dla wszystkich użytkowników zgodnie z projektem. Jeśli węzeł główny nie jest widoczny dla wszystkich użytkowników po włączeniu przycinania zabezpieczeń, uzyskanie RootNode dostępu do właściwości może spowodować InvalidOperationException wyjątek.