SiteMapNode Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa um nó na estrutura hierárquica de mapa do site como a descrita pela classe SiteMap e as classes que implementam a classe SiteMapProvider abstrata.
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
- Herança
-
SiteMapNode
- Implementações
Exemplos
Esta seção contém dois exemplos de código. O primeiro exemplo de código demonstra como criar um novo conjunto de nós de mapa de sites e adicionar elementos a ele. O segundo exemplo de código demonstra como carregar dados do mapa do site de um arquivo de texto.
O exemplo de código a seguir demonstra como usar o SiteMapNodeCollection construtor para criar uma nova SiteMapNodeCollection coleção e, em seguida, adicionar elementos a ela com o 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
O exemplo de código a seguir demonstra como o SimpleTextSiteMapProvider
analisa um arquivo de texto que contém dados do mapa do site em cadeias de caracteres delimitadas por vírgulas. Um novo SiteMapNode objeto é adicionado às coleções internas de acompanhamento da classe para cada linha que é lida do arquivo.
Este exemplo de código faz parte de um exemplo maior fornecido para a SiteMapProvider classe .
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
Comentários
Um SiteMapNode objeto representa uma página do site em uma estrutura de mapa do site. SiteMapNode Os objetos são carregados pela classe estática SiteMap em tempo de execução usando um ou mais provedores de mapa de site para carregar dados do mapa do site do armazenamento persistente na memória. SiteMapNode Os objetos são encapsulados pela SiteMapNodeItem classe para uso por controles de servidor Web, como o SiteMapPath controle .
A SiteMapNode classe inclui várias propriedades que são usadas para descrever uma única página em um site da Web, incluindo propriedades que descrevem uma página, como as Urlpropriedades , Titlee Description . Enquanto a Url propriedade é usada pela XmlSiteMapProvider classe , que é o provedor de mapa de site padrão para ASP.NET, como uma chave de pesquisa nas coleções internas que o provedor usa para rastrear nós, a classe dá suporte a SiteMapNode uma propriedade básica Key que pode ser usada por provedores de mapa de site para rastrear nós. Além disso, a Url propriedade é usada por controles de navegação para renderizar hiperlinks em páginas dentro de uma estrutura de navegação. A Title propriedade é um nome amigável para o SiteMapNode, geralmente é o mesmo que o título HTML de um Web Form e é usada por controles de navegação para renderizar rótulos simples. Por fim, uma NameValueCollection coleção de atributos adicionais Attributes está disponível para provedores de mapa de site que usam SiteMapNode objetos, mas exigem propriedades adicionais que não estão disponíveis na classe base SiteMapNode .
Construtores
SiteMapNode(SiteMapProvider, String) |
Inicializa uma nova instância da classe SiteMapNode usando o |
SiteMapNode(SiteMapProvider, String, String) |
Inicializa uma nova instância da classe SiteMapNode usando a URL especificada, um |
SiteMapNode(SiteMapProvider, String, String, String) |
Inicializa uma nova instância da classe SiteMapNode usando a URL especificada, um |
SiteMapNode(SiteMapProvider, String, String, String, String) |
Inicializa uma nova instância da classe SiteMapNode usando a URL especificada, um |
SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) |
Inicializa uma nova instância da classe SiteMapNode usando o provedor de mapa de site que gerencia o nó, a URL, o título, a descrição, as funções, os atributos adicionais e as chaves de recurso explícito e implícito para localização. |
Propriedades
Attributes |
Obtém ou define uma coleção de atributos adicionais além das propriedades fortemente tipadas definidas para a classe SiteMapNode. |
ChildNodes |
Obtém ou define todos os nós filho do objeto SiteMapNode atual do provedor SiteMapProvider associado. |
Description |
Obtém ou define uma descrição do SiteMapNode. |
HasChildNodes |
Obtém um valor que indica se o SiteMapNode atual tem nós filho. |
Item[String] |
Obtém ou define um atributo personalizado da coleção Attributes ou de uma cadeia de caracteres de recurso com base na chave especificada. |
Key |
Obtém uma cadeia de caracteres que representa uma chave de pesquisa para um nó do mapa de site. |
NextSibling |
Obtém o próximo nó SiteMapNode no mesmo nível hierárquico que o do nó atual, relativo à propriedade ParentNode (se houver). |
ParentNode |
Obtém ou define o objeto SiteMapNode que é o pai do nó atual. |
PreviousSibling |
Obtém o objeto SiteMapNode anterior no mesmo nível que o atual, relativo ao objeto ParentNode (se houver). |
Provider |
Obtém o provedor SiteMapProvider pelo qual o objeto SiteMapNode é rastreado. |
ReadOnly |
Obtém ou define um valor que indica se o nó do mapa de site pode ser modificado. |
ResourceKey |
Obtém ou define a chave de recurso que é usada para localizar o SiteMapNode. |
Roles |
Obtém ou define uma coleção de funções que estão associadas ao objeto SiteMapNode usado durante a remoção de segurança. |
RootNode |
Obtém o nó raiz do provedor raiz em uma hierarquia do provedor do mapa de site. Se nenhuma hierarquia de provedor existir, a propriedade RootNode obterá o nó raiz do provedor atual. |
Title |
Obtém ou define o título do objeto SiteMapNode. |
Url |
Obtém ou define a URL da página que o objeto SiteMapNode representa. |
Métodos
Clone() |
Cria um novo nó que é uma cópia do nó atual. |
Clone(Boolean) |
Cria uma nova cópia que é uma cópia do nó atual, clonando opcionalmente todos os nós pai e ancestrais do nó atual. |
Equals(Object) |
Obtém um valor que indica se o SiteMapNode atual é idêntico ao objeto especificado. |
GetAllNodes() |
Recupera uma coleção somente leitura de todos os objetos SiteMapNode que são descendentes do nó de chamada, independentemente do grau de separação. |
GetDataSourceView(SiteMapDataSource, String) |
Recupera o objeto SiteMapDataSourceView associado ao nó atual. |
GetExplicitResourceString(String, String, Boolean) |
Recuperará uma cadeia de caracteres localizada com base em um atributo SiteMapNode a ser localizado, uma cadeia de caracteres padrão a ser retornada se nenhum recurso for localizado e um valor booliano que indica se uma exceção será gerada se nenhum recurso for localizado. |
GetHashCode() |
Retorna o código hash do objeto SiteMapNode. |
GetHierarchicalDataSourceView() |
Recupera o objeto SiteMapHierarchicalDataSourceView associado ao nó atual. |
GetImplicitResourceString(String) |
Obtém uma cadeia de caracteres localizada com base no nome do atributo e na propriedade ResourceKey especificada pelo SiteMapProvider pela qual o SiteMapNode é rastreado. |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
IsAccessibleToUser(HttpContext) |
Obtém um valor que indica se o nó do mapa de site especificado pode ser exibido pelo usuário no contexto especificado. |
IsDescendantOf(SiteMapNode) |
Obtém um valor que indica se o nó do mapa de site atual é um filho ou um descendente direto do nó especificado. |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ToString() |
Converte o valor desta instância da classe SiteMapNode em sua representação de cadeia de caracteres equivalente. |
Implantações explícitas de interface
ICloneable.Clone() |
Cria um novo nó que é uma cópia do nó atual. Para obter uma descrição desse membro, confira Clone(). |
IHierarchyData.GetChildren() |
Recupera os itens de dados filhos hierárquicos do item atual. Para obter uma descrição desse membro, confira GetChildren(). |
IHierarchyData.GetParent() |
Recupera o pai hierárquico do item atual. Para obter uma descrição desse membro, confira GetParent(). |
IHierarchyData.HasChildren |
Obtém um valor que indica se o objeto SiteMapNode atual tem nós filho. Para obter uma descrição desse membro, confira HasChildren. |
IHierarchyData.Item |
Obtém o item de dados hierárquicos. Para obter uma descrição desse membro, confira Item. |
IHierarchyData.Path |
Obtém o caminho do item de dados hierárquicos. Para obter uma descrição desse membro, confira Path. |
IHierarchyData.Type |
Obtém uma cadeia de caracteres que representa o nome do tipo do item de dados hierárquicos. Para obter uma descrição desse membro, confira Type. |
INavigateUIData.Description |
Obtém a propriedade Description do nó do mapa de site. Para obter uma descrição desse membro, confira Description. |
INavigateUIData.Name |
Obtém a propriedade Title do nó do mapa de site. Para obter uma descrição desse membro, confira Name. |
INavigateUIData.NavigateUrl |
Obtém a propriedade Url do nó do mapa de site. Para obter uma descrição desse membro, confira NavigateUrl. |
INavigateUIData.Value |
Obtém a propriedade Title do nó do mapa de site. Para obter uma descrição desse membro, confira Value. |