SiteMapNode Clase
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í.
Representa un nodo en la estructura jerárquica del mapa del sitio, como la que describe la clase SiteMap y las clases que implementan la clase SiteMapProvider abstracta.
public ref class SiteMapNode : ICloneable, System::Web::UI::IHierarchyData, System::Web::UI::INavigateUIData
public class SiteMapNode : ICloneable, System.Web.UI.IHierarchyData, System.Web.UI.INavigateUIData
type SiteMapNode = class
interface ICloneable
interface IHierarchyData
interface INavigateUIData
Public Class SiteMapNode
Implements ICloneable, IHierarchyData, INavigateUIData
- Herencia
-
SiteMapNode
- Implementaciones
Ejemplos
Esta sección contiene dos ejemplos de código. En el primer ejemplo de código se muestra cómo crear una nueva colección de nodos de mapa de sitio y agregarle elementos. En el segundo ejemplo de código se muestra cómo cargar datos de mapa del sitio desde un archivo de texto.
En el ejemplo de código siguiente se muestra cómo usar el SiteMapNodeCollection constructor para crear una nueva SiteMapNodeCollection colección y, a continuación, agregarle elementos con el Add método .
// The LoadSiteMapData() method loads site navigation
// data from persistent storage into a DataTable.
DataTable siteMap = LoadSiteMapData();
// Create a SiteMapNodeCollection.
SiteMapNodeCollection nodes = new SiteMapNodeCollection();
// Create a SiteMapNode and add it to the collection.
SiteMapNode tempNode;
DataRow row;
int index = 0;
while (index < siteMap.Rows.Count)
{
row = siteMap.Rows[index];
// Create a node based on the data in the DataRow.
tempNode = new SiteMapNode(SiteMap.Provider,
row["Key"].ToString(),
row["Url"].ToString());
// Add the node to the collection.
nodes.Add(tempNode);
++index;
}
' The LoadSiteMapData() Function loads site navigation
' data from persistent storage into a DataTable.
Dim siteMapData As DataTable
siteMapData = LoadSiteMapData()
' Create a SiteMapNodeCollection.
Dim nodes As New SiteMapNodeCollection()
' Create a SiteMapNode and add it to the collection.
Dim tempNode As SiteMapNode
Dim row As DataRow
Dim index As Integer
index = 0
While (index < siteMapData.Rows.Count)
row = siteMapData.Rows(index)
' Create a node based on the data in the DataRow.
tempNode = New SiteMapNode(SiteMap.Provider, row("Key").ToString(), row("Url").ToString())
' Add the node to the collection.
nodes.Add(tempNode)
index = index + 1
End While
En el SimpleTextSiteMapProvider
ejemplo de código siguiente se muestra cómo analiza un archivo de texto que contiene datos de mapa del sitio en cadenas delimitadas por comas. Se agrega un nuevo SiteMapNode objeto a las colecciones de seguimiento internas de la clase para cada línea que se lee del archivo.
Este ejemplo de código es parte de un ejemplo más grande proporcionado para la clase SiteMapProvider.
protected virtual void LoadSiteMapFromStore()
{
string pathToOpen;
lock (this)
{
// If a root node exists, LoadSiteMapFromStore has already
// been called, and the method can return.
if (rootNode != null)
{
return;
}
else
{
pathToOpen = HttpContext.Current.Server.MapPath("~" + "\\" + sourceFilename);
if (File.Exists(pathToOpen))
{
// Open the file to read from.
using (StreamReader sr = File.OpenText(pathToOpen))
{
// Clear the state of the collections and rootNode
rootNode = null;
siteMapNodes.Clear();
childParentRelationship.Clear();
// Parse the file and build the site map
string s = "";
string[] nodeValues = null;
SiteMapNode temp = null;
while ((s = sr.ReadLine()) != null)
{
// Build the various SiteMapNode objects and add
// them to the ArrayList collections. The format used
// is: URL,TITLE,DESCRIPTION,PARENTURL
nodeValues = s.Split(',');
temp = new SiteMapNode(this,
HttpRuntime.AppDomainAppVirtualPath + "/" + nodeValues[0],
HttpRuntime.AppDomainAppVirtualPath + "/" + nodeValues[0],
nodeValues[1],
nodeValues[2]);
// Is this a root node yet?
if (null == rootNode &&
string.IsNullOrEmpty(nodeValues[3]))
{
rootNode = temp;
}
// If not the root node, add the node to the various collections.
else
{
siteMapNodes.Add(new DictionaryEntry(temp.Url, temp));
// The parent node has already been added to the collection.
SiteMapNode parentNode =
FindSiteMapNode(HttpRuntime.AppDomainAppVirtualPath + "/" + nodeValues[3]);
if (parentNode != null)
{
childParentRelationship.Add(new DictionaryEntry(temp.Url, parentNode));
}
else
{
throw new Exception("Parent node not found for current node.");
}
}
}
}
}
else
{
throw new Exception("File not found");
}
}
}
return;
}
Protected Overridable Sub LoadSiteMapFromStore()
Dim pathToOpen As String
SyncLock Me
' If a root node exists, LoadSiteMapFromStore has already
' been called, and the method can return.
If Not (aRootNode Is Nothing) Then
Return
Else
pathToOpen = HttpContext.Current.Server.MapPath("~" & "\\" & sourceFilename)
If File.Exists(pathToOpen) Then
' Open the file to read from.
Dim sr As StreamReader = File.OpenText(pathToOpen)
Try
' Clear the state of the collections and aRootNode
aRootNode = Nothing
siteMapNodes.Clear()
childParentRelationship.Clear()
' Parse the file and build the site map
Dim s As String = ""
Dim nodeValues As String() = Nothing
Dim temp As SiteMapNode = Nothing
Do
s = sr.ReadLine()
If Not s Is Nothing Then
' Build the various SiteMapNode objects and add
' them to the ArrayList collections. The format used
' is: URL,TITLE,DESCRIPTION,PARENTURL
nodeValues = s.Split(","c)
temp = New SiteMapNode(Me, _
HttpRuntime.AppDomainAppVirtualPath & "/" & nodeValues(0), _
HttpRuntime.AppDomainAppVirtualPath & "/" & nodeValues(0), _
nodeValues(1), _
nodeValues(2))
' Is this a root node yet?
If aRootNode Is Nothing AndAlso _
(nodeValues(3) Is Nothing OrElse _
nodeValues(3) = String.Empty) Then
aRootNode = temp
' If not the root node, add the node to the various collections.
Else
siteMapNodes.Add(New DictionaryEntry(temp.Url, temp))
' The parent node has already been added to the collection.
Dim parentNode As SiteMapNode = _
FindSiteMapNode(HttpRuntime.AppDomainAppVirtualPath & "/" & nodeValues(3))
If Not (parentNode Is Nothing) Then
childParentRelationship.Add(New DictionaryEntry(temp.Url, parentNode))
Else
Throw New Exception("Parent node not found for current node.")
End If
End If
End If
Loop Until s Is Nothing
Finally
sr.Close()
End Try
Else
Throw New Exception("File not found")
End If
End If
End SyncLock
Return
End Sub
End Class
Comentarios
Un SiteMapNode objeto representa una página de sitio web en una estructura de mapa de sitio. SiteMapNode La clase estática SiteMap carga los objetos en tiempo de ejecución mediante uno o varios proveedores de mapas de sitio para cargar datos de mapa de sitio desde el almacenamiento persistente en la memoria. SiteMapNode Los objetos se encapsulan mediante la SiteMapNodeItem clase para que los usen los controles de servidor web, como el SiteMapPath control .
La SiteMapNode clase incluye varias propiedades que se usan para describir una sola página en un sitio web, incluidas las propiedades que describen una página, como las Urlpropiedades , Titley Description . Mientras que la clase usa XmlSiteMapProvider la Url propiedad , que es el proveedor de mapa de sitio predeterminado para ASP.NET, como clave de búsqueda en las colecciones internas que el proveedor usa para realizar un seguimiento de los nodos, la SiteMapNode clase admite una propiedad básica Key que los proveedores de mapas de sitio pueden usar para realizar un seguimiento de los nodos. Además, los controles de navegación usan la Url propiedad para representar hipervínculos a páginas dentro de una estructura de navegación. La Title propiedad es un nombre descriptivo para , SiteMapNodesuele ser el mismo que el título HTML de un formulario web y los controles de navegación usan para representar etiquetas simples. Por último, hay disponible una NameValueCollection colección de atributos adicionales Attributes para proveedores de mapas de sitio que usan SiteMapNode objetos, pero requieren propiedades adicionales que no están disponibles en la clase base SiteMapNode .
Constructores
SiteMapNode(SiteMapProvider, String) |
Inicializa una nueva instancia de la clase SiteMapNode, utilizando la |
SiteMapNode(SiteMapProvider, String, String) |
Inicializa una nueva instancia de la clase SiteMapNode, utilizando la dirección URL especificada, una |
SiteMapNode(SiteMapProvider, String, String, String) |
Inicializa una nueva instancia de la clase SiteMapNode, utilizando la dirección URL especificada, una |
SiteMapNode(SiteMapProvider, String, String, String, String) |
Inicializa una nueva instancia de la clase SiteMapNode, utilizando la dirección URL especificada, una |
SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) |
Inicializa una nueva instancia de la clase SiteMapNode utilizando el proveedor del mapa del sitio especificado que administra el nodo, la dirección URL, el título, la descripción, los roles, los atributos adicionales y las claves de recurso explícitas e implícitas para la adaptación. |
Propiedades
Attributes |
Obtiene o establece una colección de atributos adicionales más allá de las propiedades fuertemente tipadas definidas para la clase SiteMapNode. |
ChildNodes |
Obtiene o establece todos los nodos secundarios del objeto SiteMapNode actual del proveedor SiteMapProvider asociado. |
Description |
Obtiene o establece una descripción para la clase SiteMapNode. |
HasChildNodes |
Obtiene un valor que indica si el nodo SiteMapNode actual tiene nodos secundarios. |
Item[String] |
Obtiene o establece un atributo personalizado de la colección Attributes o una cadena de recurso basada en la clave especificada. |
Key |
Obtiene una cadena que representa una clave de búsqueda para un nodo del mapa del sitio. |
NextSibling |
Obtiene el nodo SiteMapNode siguiente situado en el mismo nivel jerárquico que el actual, de manera relativa con respecto a la propiedad ParentNode (si la hay). |
ParentNode |
Obtiene o establece el objeto SiteMapNode que es el nodo primario del actual. |
PreviousSibling |
Obtiene el objeto SiteMapNode anterior situado en el mismo nivel que el actual, de manera relativa con respecto al objeto ParentNode (si lo hay). |
Provider |
Obtiene el proveedor SiteMapProvider por el que se realiza el seguimiento del objeto SiteMapNode. |
ReadOnly |
Obtiene o establece un valor que indica si se puede modificar el nodo del mapa del sitio. |
ResourceKey |
Obtiene o establece la clave de recurso utilizada para adaptar SiteMapNode. |
Roles |
Obtiene o establece una colección de roles asociados al objeto SiteMapNode, que se utilizan durante la reducción de seguridad. |
RootNode |
Obtiene el nodo raíz del proveedor raíz en una jerarquía de proveedores del mapa del sitio. Si no existe ninguna jerarquía de proveedores, la propiedad RootNode obtiene el nodo raíz del proveedor actual. |
Title |
Obtiene o establece el título del objeto SiteMapNode. |
Url |
Obtiene o establece la dirección URL de la página que el objeto SiteMapNode representa. |
Métodos
Clone() |
Crea un nuevo nodo que es una copia del nodo actual. |
Clone(Boolean) |
Crea una nueva copia que es una copia del nodo actual y, opcionalmente, clona todos los nodos primarios y antecesores del nodo actual. |
Equals(Object) |
Obtiene un valor que indica si la clase SiteMapNode actual es idéntica al objeto especificado. |
GetAllNodes() |
Recupera una colección de sólo lectura de todos los objetos SiteMapNode que son descendientes del nodo llamador, sin tener en cuenta el grado de separación. |
GetDataSourceView(SiteMapDataSource, String) |
Recupera el objeto SiteMapDataSourceView que está asociado con el nodo actual. |
GetExplicitResourceString(String, String, Boolean) |
Recupera una cadena adaptada basándose en un atributo SiteMapNode que hay que adaptar, una cadena predeterminada que se devolverá si no se encuentra ningún recurso, y un valor booleano que indica si se deberá producir una excepción en caso de no encontrarse ningún recurso. |
GetHashCode() |
Devuelve el código hash del objeto SiteMapNode. |
GetHierarchicalDataSourceView() |
Recupera el objeto SiteMapHierarchicalDataSourceView que está asociado con el nodo actual. |
GetImplicitResourceString(String) |
Obtiene una cadena adaptada basándose en el nombre de atributo y en la propiedad ResourceKey que especifica el proveedor SiteMapProvider por el que se efectúa el seguimiento de SiteMapNode. |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
IsAccessibleToUser(HttpContext) |
Obtiene un valor que indica si el usuario puede ver el nodo del mapa del sitio especificado en el contexto indicado. |
IsDescendantOf(SiteMapNode) |
Obtiene un valor que indica si el nodo del mapa del sitio actual es un nodo secundario o un descendiente directo del nodo especificado. |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ToString() |
Convierte el valor de esta instancia de la clase SiteMapNode en la representación de cadena equivalente. |
Implementaciones de interfaz explícitas
ICloneable.Clone() |
Crea un nuevo nodo que es una copia del nodo actual. Para obtener una descripción de este miembro, vea Clone(). |
IHierarchyData.GetChildren() |
Recupera los elementos de datos de elementos secundarios jerárquicos del elemento actual. Para obtener una descripción de este miembro, vea GetChildren(). |
IHierarchyData.GetParent() |
Recupera el elemento primario jerárquico del elemento actual. Para obtener una descripción de este miembro, vea GetParent(). |
IHierarchyData.HasChildren |
Obtiene un valor que indica si el objeto SiteMapNode actual tiene nodos secundarios. Para obtener una descripción de este miembro, vea HasChildren. |
IHierarchyData.Item |
Obtiene el elemento de datos jerárquico. Para obtener una descripción de este miembro, vea Item. |
IHierarchyData.Path |
Obtiene la ruta de acceso del elemento de datos jerárquico. Para obtener una descripción de este miembro, vea Path. |
IHierarchyData.Type |
Obtiene una cadena que representa el nombre de tipo del elemento de datos jerárquico. Para obtener una descripción de este miembro, vea Type. |
INavigateUIData.Description |
Obtiene la propiedad Description del nodo del mapa del sitio. Para obtener una descripción de este miembro, vea Description. |
INavigateUIData.Name |
Obtiene la propiedad Title del nodo del mapa del sitio. Para obtener una descripción de este miembro, vea Name. |
INavigateUIData.NavigateUrl |
Obtiene la propiedad Url del nodo del mapa del sitio. Para obtener una descripción de este miembro, vea NavigateUrl. |
INavigateUIData.Value |
Obtiene la propiedad Title del nodo del mapa del sitio. Para obtener una descripción de este miembro, vea Value. |