SiteMapNode Construtores
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.
Inicializa uma nova instância da classe SiteMapNode e a associa ao objeto SiteMapProvider especificado.
Sobrecargas
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. |
SiteMapNode(SiteMapProvider, String)
Inicializa uma nova instância da classe SiteMapNode usando o key
especificado para identificar a página que o nó representa e o provedor de mapa de site que gerencia o nó.
public:
SiteMapNode(System::Web::SiteMapProvider ^ provider, System::String ^ key);
public SiteMapNode (System.Web.SiteMapProvider provider, string key);
new System.Web.SiteMapNode : System.Web.SiteMapProvider * string -> System.Web.SiteMapNode
Public Sub New (provider As SiteMapProvider, key As String)
Parâmetros
- provider
- SiteMapProvider
O SiteMapProvider ao qual o nó está associado.
- key
- String
Uma chave de pesquisa específica do provedor.
Exceções
Comentários
A XmlSiteMapProvider classe , que é a implementação padrão SiteMapProvider do provedor para ASP.NET, usa a SiteMapNode.Url propriedade como uma chave de pesquisa, se for fornecida para o nó (se uma URL não for fornecida, um identificador de rastreamento será gerado para o nó). Portanto, qualquer SiteMapNode controle que forneça uma URL e seja usado pelo XmlSiteMapProvider deve ter uma URL exclusiva dentro do escopo do provedor.
Aplica-se a
SiteMapNode(SiteMapProvider, String, String)
Inicializa uma nova instância da classe SiteMapNode usando a URL especificada, um key
para identificar a página que o nó representa e o provedor de mapa de site que gerencia o nó.
public:
SiteMapNode(System::Web::SiteMapProvider ^ provider, System::String ^ key, System::String ^ url);
public SiteMapNode (System.Web.SiteMapProvider provider, string key, string url);
new System.Web.SiteMapNode : System.Web.SiteMapProvider * string * string -> System.Web.SiteMapNode
Public Sub New (provider As SiteMapProvider, key As String, url As String)
Parâmetros
- provider
- SiteMapProvider
O SiteMapProvider ao qual o nó está associado.
- key
- String
Uma chave de pesquisa específica do provedor.
- url
- String
A URL da página que o nó representa dentro do site.
Exceções
Exemplos
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
Comentários
A XmlSiteMapProvider classe , que é a implementação padrão SiteMapProvider do provedor para ASP.NET, usa a SiteMapNode.Url propriedade como uma chave de pesquisa, se for fornecida para o nó (se uma URL não for fornecida, um identificador de rastreamento será gerado para o nó). Portanto, qualquer SiteMapNode objeto que forneça uma URL e seja usado pelo XmlSiteMapProvider deve ter uma URL exclusiva dentro do escopo do provedor.
Aplica-se a
SiteMapNode(SiteMapProvider, String, String, String)
Inicializa uma nova instância da classe SiteMapNode usando a URL especificada, um key
para identificar a página que o nó representa, um bloco e o provedor de mapa de site que gerencia o nó.
public:
SiteMapNode(System::Web::SiteMapProvider ^ provider, System::String ^ key, System::String ^ url, System::String ^ title);
public SiteMapNode (System.Web.SiteMapProvider provider, string key, string url, string title);
new System.Web.SiteMapNode : System.Web.SiteMapProvider * string * string * string -> System.Web.SiteMapNode
Public Sub New (provider As SiteMapProvider, key As String, url As String, title As String)
Parâmetros
- provider
- SiteMapProvider
O SiteMapProvider ao qual o nó está associado.
- key
- String
Uma chave de pesquisa específica do provedor.
- url
- String
A URL da página que o nó representa dentro do site.
- title
- String
Um rótulo para o nó, geralmente exibido por controles de navegação.
Exceções
Exemplos
O exemplo de código a seguir demonstra como usar o SiteMapNode construtor para criar uma nova instância da SiteMapNode classe . O nó é inicializado com valores de uma linha de banco de dados do Microsoft Access.
Este exemplo de código faz parte de um exemplo maior fornecido para o BuildSiteMap método .
OleDbCommand^ rootNodeCommand = gcnew OleDbCommand
("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid IS NULL", accessConnection);
OleDbDataReader^ rootNodeReader = rootNodeCommand->ExecuteReader();
if ( rootNodeReader->HasRows )
{
rootNodeReader->Read();
rootNodeId = rootNodeReader->GetInt32( 0 );
// Create a SiteMapNode that references the current StaticSiteMapProvider.
rootNode = gcnew SiteMapNode(this, rootNodeId.ToString(),
rootNodeReader->GetString( 1 ),rootNodeReader->GetString( 2 ));
}
else
return nullptr;
rootNodeReader->Close();
OleDbCommand rootNodeCommand =
new OleDbCommand("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid IS NULL",
accessConnection);
OleDbDataReader rootNodeReader = rootNodeCommand.ExecuteReader();
if(rootNodeReader.HasRows) {
rootNodeReader.Read();
rootNodeId = rootNodeReader.GetInt32(0);
// Create a SiteMapNode that references the current StaticSiteMapProvider.
rootNode = new SiteMapNode(this,
rootNodeId.ToString(),
rootNodeReader.GetString(1),
rootNodeReader.GetString(2));
}
else
{
return null;
}
rootNodeReader.Close();
Dim rootNodeCommand As New OleDbCommand("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid IS NULL", accessConnection)
Dim rootNodeReader As OleDbDataReader = rootNodeCommand.ExecuteReader()
If rootNodeReader.HasRows Then
rootNodeReader.Read()
rootNodeId = rootNodeReader.GetInt32(0)
' Create a SiteMapNode that references the current StaticSiteMapProvider.
aRootNode = New SiteMapNode(Me, rootNodeId.ToString(), rootNodeReader.GetString(1), rootNodeReader.GetString(2))
Else
Return Nothing
End If
rootNodeReader.Close()
Comentários
A XmlSiteMapProvider classe , que é a implementação padrão SiteMapProvider do provedor para ASP.NET, usa a SiteMapNode.Url propriedade como uma chave de pesquisa, se for fornecida para o nó (se uma URL não for fornecida, um identificador de rastreamento será gerado para o nó). Portanto, qualquer SiteMapNode objeto que forneça uma URL e seja usado pelo XmlSiteMapProvider deve ter uma URL exclusiva dentro do escopo do provedor.
Se não title
for fornecido, as chamadas para a Title propriedade retornarão o String.Empty campo.
Aplica-se a
SiteMapNode(SiteMapProvider, String, String, String, String)
Inicializa uma nova instância da classe SiteMapNode usando a URL especificada, um key
para identificar a página que o nó representa, um bloco, a descrição e o provedor de mapa de site que gerencia o nó.
public:
SiteMapNode(System::Web::SiteMapProvider ^ provider, System::String ^ key, System::String ^ url, System::String ^ title, System::String ^ description);
public SiteMapNode (System.Web.SiteMapProvider provider, string key, string url, string title, string description);
new System.Web.SiteMapNode : System.Web.SiteMapProvider * string * string * string * string -> System.Web.SiteMapNode
Public Sub New (provider As SiteMapProvider, key As String, url As String, title As String, description As String)
Parâmetros
- provider
- SiteMapProvider
O SiteMapProvider ao qual o nó está associado.
- key
- String
Uma chave de pesquisa específica do provedor.
- url
- String
A URL da página que o nó representa dentro do site.
- title
- String
Um rótulo para o nó, geralmente exibido por controles de navegação.
- description
- String
Uma descrição da página que o nó representa.
Exceções
Exemplos
O exemplo de código a seguir demonstra como usar o SiteMapNode construtor para criar um SiteMapNode objeto analisando dados de um arquivo de texto simples para criar um mapa de site na memória.
Este exemplo de código faz parte de um exemplo maior fornecido para a classe abstrata 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
Comentários
A XmlSiteMapProvider classe , que é a implementação padrão SiteMapProvider do provedor para ASP.NET, usa a SiteMapNode.Url propriedade como uma chave de pesquisa, se for fornecida para o nó (se uma URL não for fornecida, um identificador de rastreamento será gerado para o nó). Portanto, qualquer SiteMapNode objeto que forneça uma URL e seja usado pelo XmlSiteMapProvider deve ter uma URL exclusiva dentro do escopo do provedor.
Se não for title
fornecido ou description
for fornecido, as chamadas para as Title propriedades ou Description retornarão um String.Empty campo.
Confira também
Aplica-se a
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.
public:
SiteMapNode(System::Web::SiteMapProvider ^ provider, System::String ^ key, System::String ^ url, System::String ^ title, System::String ^ description, System::Collections::IList ^ roles, System::Collections::Specialized::NameValueCollection ^ attributes, System::Collections::Specialized::NameValueCollection ^ explicitResourceKeys, System::String ^ implicitResourceKey);
public SiteMapNode (System.Web.SiteMapProvider provider, string key, string url, string title, string description, System.Collections.IList roles, System.Collections.Specialized.NameValueCollection attributes, System.Collections.Specialized.NameValueCollection explicitResourceKeys, string implicitResourceKey);
new System.Web.SiteMapNode : System.Web.SiteMapProvider * string * string * string * string * System.Collections.IList * System.Collections.Specialized.NameValueCollection * System.Collections.Specialized.NameValueCollection * string -> System.Web.SiteMapNode
Public Sub New (provider As SiteMapProvider, key As String, url As String, title As String, description As String, roles As IList, attributes As NameValueCollection, explicitResourceKeys As NameValueCollection, implicitResourceKey As String)
Parâmetros
- provider
- SiteMapProvider
O SiteMapProvider ao qual o nó está associado.
- key
- String
Uma chave de pesquisa específica do provedor.
- url
- String
A URL da página que o nó representa dentro do site.
- title
- String
Um rótulo para o nó, geralmente exibido por controles de navegação.
- description
- String
Uma descrição da página que o nó representa.
- roles
- IList
Um IList de funções que têm permissão para exibir a página representada pelo SiteMapNode.
- attributes
- NameValueCollection
Um NameValueCollection de atributos adicionais usados para inicializar o SiteMapNode.
- explicitResourceKeys
- NameValueCollection
Um NameValueCollection de chaves de recurso explícito usadas para localização.
- implicitResourceKey
- String
Uma chave de recurso implícito usada para localização.
Exceções
Comentários
A XmlSiteMapProvider classe , que é a implementação padrão SiteMapProvider do provedor para ASP.NET, usa a SiteMapNode.Url propriedade como uma chave de pesquisa, se for fornecida para o nó (se uma URL não for fornecida, um identificador de rastreamento será gerado para o nó). Portanto, qualquer SiteMapNode objeto que forneça uma URL e seja usado pelo XmlSiteMapProvider deve ter uma URL exclusiva dentro do escopo do provedor.
A NameValueCollection coleção de atributos com os quais o SiteMapNode é criado está disponível por meio da Attributes propriedade e facilita a aplicação de atributos adicionais a um nó de mapa de site e estender seus recursos sem derivar uma classe personalizada para fazer isso.
Forneça uma IList coleção de funções para fornecer um conjunto de funções que podem exibir o nó quando a SecurityTrimmingEnabled propriedade retorna true
. Para obter mais informações, consulte SecurityTrimmingEnabled.
O XmlSiteMapProvider provedor usa a SiteMapNode.Url propriedade como uma chave de pesquisa. Portanto, qualquer SiteMapNode que seja usada pelo XmlSiteMapProvider deve ter uma URL exclusiva dentro do escopo do provedor.
Se não for title
fornecido ou description
for fornecido, as chamadas para as Title propriedades ou Description retornarão um String.Empty campo.
Para especificar programaticamente recursos para localização, defina o valor de implicitResourceKey
como um nome exclusivo que será usado para identificar recursos localizados para o nó ou definir explicitResourceKeys
como uma NameValueCollection coleção de name/value
pares em name
que é a propriedade do nó ou o atributo personalizado para localizar e value
contém valores de localização para a propriedade do nó ou atributo personalizado. Os valores localizados podem ser definidos nos arquivos .resx apropriados. Para obter mais informações sobre como localizar o Title, Descriptione quaisquer propriedades personalizadas de um SiteMapNode objeto, consulte Como localizar Site-Map dados. Para obter os requisitos de sintaxe da explicitResourceKeys
coleção, consulte NameValueCollection.