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 de la estructura jerárquica del mapa de sitio, como el descrito por la SiteMap clase y las clases que implementan la clase abstracta SiteMapProvider .
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 de 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 ejemplo de código siguiente se muestra cómo analiza SimpleTextSiteMapProvider un archivo de texto que contiene datos de mapa de 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 forma parte de un ejemplo más grande proporcionado para la SiteMapProvider clase .
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 su uso por 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 la UrlXmlSiteMapProvider propiedad , que es el proveedor de mapa de sitio predeterminado para ASP.NET, como una 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 los proveedores de mapas de sitio que usan SiteMapNode objetos, pero requieren propiedades adicionales que no están disponibles en la clase base SiteMapNode .
Constructores
| Nombre | Description |
|---|---|
| SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) |
Inicializa una nueva instancia de la SiteMapNode clase mediante el proveedor de mapa de 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 recursos explícitas e implícitas para la localización. |
| SiteMapNode(SiteMapProvider, String, String, String, String) |
Inicializa una nueva instancia de la SiteMapNode clase mediante la dirección URL especificada, un |
| SiteMapNode(SiteMapProvider, String, String, String) |
Inicializa una nueva instancia de la SiteMapNode clase mediante la dirección URL especificada, para |
| SiteMapNode(SiteMapProvider, String, String) |
Inicializa una nueva instancia de la SiteMapNode clase utilizando la dirección URL especificada, un |
| SiteMapNode(SiteMapProvider, String) |
Inicializa una nueva instancia de la SiteMapNode clase utilizando el especificado |
Propiedades
| Nombre | Description |
|---|---|
| Attributes |
Obtiene o establece una colección de atributos adicionales más allá de las propiedades fuertemente tipadas definidas para la SiteMapNode clase . |
| ChildNodes |
Obtiene o establece todos los nodos secundarios del objeto actual SiteMapNode del proveedor asociado SiteMapProvider . |
| Description |
Obtiene o establece una descripción de .SiteMapNode |
| HasChildNodes |
Obtiene un valor que indica si el objeto actual SiteMapNode tiene nodos secundarios. |
| Item[String] |
Obtiene o establece un atributo personalizado de la Attributes colección o una cadena de recursos basada en la clave especificada. |
| Key |
Obtiene una cadena que representa una clave de búsqueda para un nodo de mapa de sitio. |
| NextSibling |
Obtiene el siguiente SiteMapNode nodo en el mismo nivel jerárquico que el actual, en relación con la ParentNode propiedad (si existe). |
| ParentNode |
Obtiene o establece el SiteMapNode objeto que es el elemento primario del nodo actual. |
| PreviousSibling |
Obtiene el objeto anterior SiteMapNode en el mismo nivel que el actual, en relación con el ParentNode objeto (si existe). |
| Provider |
Obtiene el proveedor al SiteMapProvider que realiza el seguimiento del SiteMapNode objeto. |
| ReadOnly |
Obtiene o establece un valor que indica si se puede modificar el nodo de mapa del sitio. |
| ResourceKey |
Obtiene o establece la clave de recurso que se usa para localizar .SiteMapNode |
| Roles |
Obtiene o establece una colección de roles que están asociados al SiteMapNode objeto , que se usan durante el recorte de seguridad. |
| RootNode |
Obtiene el nodo raíz del proveedor raíz en una jerarquía de proveedores de mapa de sitio. Si no existe ninguna jerarquía de proveedores, la RootNode propiedad obtiene el nodo raíz del proveedor actual. |
| Title |
Obtiene o establece el título del SiteMapNode objeto . |
| Url |
Obtiene o establece la dirección URL de la página que representa el SiteMapNode objeto. |
Métodos
| Nombre | Description |
|---|---|
| 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 el actual SiteMapNode es idéntico al objeto especificado. |
| GetAllNodes() |
Recupera una colección de solo lectura de todos los SiteMapNode objetos que son descendientes del nodo que llama, independientemente del grado de separación. |
| GetDataSourceView(SiteMapDataSource, String) |
Recupera el SiteMapDataSourceView objeto asociado al nodo actual. |
| GetExplicitResourceString(String, String, Boolean) |
Recupera una cadena localizada basada en un SiteMapNode atributo para localizar, una cadena predeterminada que se devolverá si no se encuentra ningún recurso y un valor booleano que indica si se debe producir una excepción si no se encuentra ningún recurso. |
| GetHashCode() |
Devuelve el código hash del SiteMapNode objeto . |
| GetHierarchicalDataSourceView() |
Recupera el SiteMapHierarchicalDataSourceView objeto asociado al nodo actual. |
| GetImplicitResourceString(String) |
Obtiene una cadena localizada basada en el nombre del atributo y ResourceKey la propiedad que especifica el objeto mediante el SiteMapProvider que se realiza el SiteMapNode seguimiento. |
| 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 de mapa de sitio especificado en el contexto especificado. |
| IsDescendantOf(SiteMapNode) |
Obtiene un valor que indica si el nodo de mapa del sitio actual es un elemento secundario o un descendiente directo del nodo especificado. |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| ToString() |
Convierte el valor de esta instancia de la SiteMapNode clase en su representación de cadena equivalente. |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| 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 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 actual SiteMapNode 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 Description propiedad del nodo de mapa del sitio. Para obtener una descripción de este miembro, vea Description. |
| INavigateUIData.Name |
Obtiene la Title propiedad del nodo de mapa del sitio. Para obtener una descripción de este miembro, vea Name. |
| INavigateUIData.NavigateUrl |
Obtiene la Url propiedad del nodo de mapa del sitio. Para obtener una descripción de este miembro, vea NavigateUrl. |
| INavigateUIData.Value |
Obtiene la Title propiedad del nodo de mapa del sitio. Para obtener una descripción de este miembro, vea Value. |