SiteMap.RootNode Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém um SiteMapNode objeto que representa a página de topo da estrutura de navegação do site.
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
Valor de Propriedade
A SiteMapNode que representa a página de topo da estrutura de navegação do site; caso contrário, null, se o ajuste de segurança estiver ativado e o nó não puder ser devolvido ao utilizador atual.
Exceções
A funcionalidade de mapa do local não está ativada.
-ou-
O RootNode resolve para null, o que ocorre se o ajuste de segurança estiver ativado e o nó raiz não for visível para o utilizador atual.
O fornecedor padrão especificado na configuração não existe.
A funcionalidade é suportada apenas quando está a correr em Baixa Confiança ou superior.
Exemplos
O exemplo de código seguinte demonstra como usar a RootNode propriedade para recuperar o SiteMapNode objeto que representa o nó raiz do site, independentemente da localização atual na hierarquia da página.
<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>
Observações
A SiteMap classe recupera a RootNode propriedade solicitando-a ao fornecedor. Se existir uma hierarquia de fornecedor, a SiteMap classe recupera o nó raiz do fornecedor raiz na hierarquia. Para aceder ao nó raiz do fornecedor padrão, chame a Provider propriedade, que recupera tanto o fornecedor padrão como a sua RootNode propriedade.
O XmlSiteMapProvider objeto, que é o fornecedor padrão da SiteMap classe, suporta apenas um RootNode.
Se implementares a tua própria SiteMapProvider classe e sobrescreveres a propriedade abstrata RootNode , deves fornecer a tua própria implementação para acompanhar a RootNode propriedade da SiteMapNode instância.
O nó raiz deve ser visível para todos os utilizadores, por design. Se o nó raiz não for visível para todos os utilizadores quando o ajuste de segurança está ativado, aceder à RootNode propriedade pode resultar numa InvalidOperationException exceção.