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 de mapa de site hierárquico, como o SiteMap descrito pela classe e classes que implementam a classe abstrata 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
- 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 uma nova coleção de nós de mapa de site e adicionar elementos a ela. 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 analisa SimpleTextSiteMapProvider um arquivo de texto que contém dados de mapa de 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 de 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 o Url, Titlee Description as propriedades. 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 SiteMapNode classe dá suporte a 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 Formulário Web 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
| Nome | Description |
|---|---|
| SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) |
Inicializa uma nova instância da SiteMapNode classe usando o provedor de mapa de site especificado que gerencia o nó, URL, título, descrição, funções, atributos adicionais e chaves de recurso explícitas e implícitas para localização. |
| SiteMapNode(SiteMapProvider, String, String, String, String) |
Inicializa uma nova instância da classe usando a SiteMapNode URL especificada, uma |
| SiteMapNode(SiteMapProvider, String, String, String) |
Inicializa uma nova instância da classe usando a SiteMapNode URL especificada, uma |
| SiteMapNode(SiteMapProvider, String, String) |
Inicializa uma nova instância da classe usando a SiteMapNode URL especificada, uma |
| SiteMapNode(SiteMapProvider, String) |
Inicializa uma nova instância da SiteMapNode classe, usando a especificada |
Propriedades
| Nome | Description |
|---|---|
| Attributes |
Obtém ou define uma coleção de atributos adicionais além das propriedades fortemente tipadas definidas para a SiteMapNode classe. |
| ChildNodes |
Obtém ou define todos os nós filho do objeto atual SiteMapNode do provedor associado SiteMapProvider . |
| Description |
Obtém ou define uma descrição para o SiteMapNode. |
| HasChildNodes |
Obtém um valor que indica se a corrente SiteMapNode tem nós filho. |
| Item[String] |
Obtém ou define um atributo personalizado da Attributes coleção 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ó de mapa de site. |
| NextSibling |
Obtém o próximo SiteMapNode nó no mesmo nível hierárquico que o atual, em relação à ParentNode propriedade (se houver). |
| ParentNode |
Obtém ou define o SiteMapNode objeto que é o pai do nó atual. |
| PreviousSibling |
Obtém o objeto anterior SiteMapNode no mesmo nível que o atual, em relação ao ParentNode objeto (se houver). |
| Provider |
Obtém o SiteMapProvider provedor pelo qual o SiteMapNode objeto é acompanhado. |
| ReadOnly |
Obtém ou define um valor que indica se o nó do mapa do site pode ser modificado. |
| ResourceKey |
Obtém ou define a chave de recurso usada para localizar o SiteMapNode. |
| Roles |
Obtém ou define uma coleção de funções associadas ao objeto, usadas durante o SiteMapNode corte de segurança. |
| RootNode |
Obtém o nó raiz do provedor raiz em uma hierarquia de provedor de mapa de site. Se nenhuma hierarquia de provedor existir, a RootNode propriedade obterá o nó raiz do provedor atual. |
| Title |
Obtém ou define o título do SiteMapNode objeto. |
| Url |
Obtém ou define a URL da página que o SiteMapNode objeto representa. |
Métodos
| Nome | Description |
|---|---|
| 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, opcionalmente clonando todos os nós pai e ancestral do nó atual. |
| Equals(Object) |
Obtém um valor que indica se a corrente SiteMapNode é idêntica ao objeto especificado. |
| GetAllNodes() |
Recupera uma coleção somente leitura de todos os SiteMapNode objetos descendentes do nó de chamada, independentemente do grau de separação. |
| GetDataSourceView(SiteMapDataSource, String) |
Recupera o SiteMapDataSourceView objeto associado ao nó atual. |
| GetExplicitResourceString(String, String, Boolean) |
Recupera uma cadeia de caracteres localizada com base em um SiteMapNode atributo para localizar, uma cadeia de caracteres padrão a ser retornada se nenhum recurso for encontrado e um valor booliano indicando se uma exceção será gerada se nenhum recurso for encontrado. |
| GetHashCode() |
Retorna o código hash do SiteMapNode objeto. |
| GetHierarchicalDataSourceView() |
Recupera o SiteMapHierarchicalDataSourceView objeto associado ao nó atual. |
| GetImplicitResourceString(String) |
Obtém uma cadeia de caracteres localizada com base no nome do atributo e ResourceKey na propriedade especificada pelo SiteMapProvider qual a SiteMapNode cadeia de caracteres é rastreada. |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| IsAccessibleToUser(HttpContext) |
Obtém um valor que indica se o nó de mapa de site especificado pode ser exibido pelo usuário no contexto especificado. |
| IsDescendantOf(SiteMapNode) |
Obtém um valor que indica se o nó de mapa do site atual é um filho ou um descendente direto do nó especificado. |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| ToString() |
Converte o valor dessa instância da SiteMapNode classe em sua representação de cadeia de caracteres equivalente. |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| ICloneable.Clone() |
Cria um novo nó que é uma cópia do nó atual. Para obter uma descrição deste membro, consulte Clone(). |
| IHierarchyData.GetChildren() |
Recupera os itens de dados filhos hierárquicos do item atual. Para obter uma descrição deste membro, consulte GetChildren(). |
| IHierarchyData.GetParent() |
Recupera o pai hierárquico do item atual. Para obter uma descrição deste membro, consulte GetParent(). |
| IHierarchyData.HasChildren |
Obtém um valor que indica se o objeto atual SiteMapNode tem nós filho. Para obter uma descrição deste membro, consulte HasChildren. |
| IHierarchyData.Item |
Obtém o item de dados hierárquico. Para obter uma descrição deste membro, consulte Item. |
| IHierarchyData.Path |
Obtém o caminho do item de dados hierárquico. Para obter uma descrição deste membro, consulte Path. |
| IHierarchyData.Type |
Obtém uma cadeia de caracteres que representa o nome do tipo do item de dados hierárquico. Para obter uma descrição deste membro, consulte Type. |
| INavigateUIData.Description |
Obtém a Description propriedade do nó do mapa do site. Para obter uma descrição deste membro, consulte Description. |
| INavigateUIData.Name |
Obtém a Title propriedade do nó do mapa do site. Para obter uma descrição deste membro, consulte Name. |
| INavigateUIData.NavigateUrl |
Obtém a Url propriedade do nó do mapa do site. Para obter uma descrição deste membro, consulte NavigateUrl. |
| INavigateUIData.Value |
Obtém a Title propriedade do nó do mapa do site. Para obter uma descrição deste membro, consulte Value. |