SiteMap.RootNode Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene un objeto SiteMapNode que representa la página de nivel superior de la estructura de navegación del sitio.
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 propiedad
SiteMapNode que representa la página de nivel superior de la estructura de navegación del sitio; de lo contrario, null
, si se habilita el recorte de seguridad y no se puede devolver el nodo al usuario actual.
Excepciones
La característica de mapa del sitio no está habilitada.
o bien
La propiedad RootNode se resuelve como null
, lo que sucederá si se habilita un recorte de seguridad y el nodo raíz no está visible para el usuario actual.
El proveedor predeterminado especificado en la configuración no existe.
Sólo se admite esta característica cuando se ejecuta, como mínimo, con un nivel de confianza bajo.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar la RootNode propiedad para recuperar el SiteMapNode objeto que representa el nodo raíz del sitio, independientemente de la ubicación actual en la jerarquía de páginas.
<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>
Comentarios
La SiteMap clase recupera la RootNode propiedad solicitándolo desde el proveedor. Si hay una jerarquía de proveedores, la SiteMap clase recupera el nodo raíz del proveedor raíz en la jerarquía. Para acceder al nodo raíz del proveedor predeterminado, llame a la Provider propiedad , que recupera tanto el proveedor predeterminado como su RootNode propiedad.
El XmlSiteMapProvider objeto , que es el proveedor predeterminado de la SiteMap clase , solo admite un RootNode.
Si implementa su propia SiteMapProvider clase e invalida la propiedad abstracta RootNode , debe proporcionar su propia implementación para realizar un seguimiento de la RootNode propiedad de la SiteMapNode instancia.
El nodo raíz debe ser visible para todos los usuarios, por diseño. Si el nodo raíz no está visible para todos los usuarios cuando se habilita el recorte de seguridad, el acceso a la RootNode propiedad podría dar lugar a una InvalidOperationException excepción.