SiteMapNode Construtores

Definição

Inicializa uma nova instância da SiteMapNode classe e associa-a ao objeto especificado SiteMapProvider .

Sobrecargas

Name Description
SiteMapNode(SiteMapProvider, String)

Inicializa uma nova instância da SiteMapNode classe, usando a especificada key para identificar a página que o nó representa e o fornecedor de mapas do site que gere o nó.

SiteMapNode(SiteMapProvider, String, String)

Inicializa uma nova instância da SiteMapNode classe usando o URL especificado, a key para identificar a página que o nó representa e o fornecedor do mapa do site que gere o nó.

SiteMapNode(SiteMapProvider, String, String, String)

Inicializa uma nova instância da SiteMapNode classe usando a URL especificada, para key identificar a página que o nó representa, um título e o fornecedor do mapa do site que gere o nó.

SiteMapNode(SiteMapProvider, String, String, String, String)

Inicializa uma nova instância da SiteMapNode classe usando a URL especificada, a key para identificar a página que o nó representa, um título e descrição, e o fornecedor do mapa do site que gere o nó.

SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String)

Inicializa uma nova instância da SiteMapNode classe usando o fornecedor de mapas do site especificado que gere o nó, URL, título, descrição, funções, atributos adicionais e chaves de recursos explícitas e implícitas para localização.

SiteMapNode(SiteMapProvider, String)

Inicializa uma nova instância da SiteMapNode classe, usando a especificada key para identificar a página que o nó representa e o fornecedor de mapas do site que gere 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 com que o nó está associado.

key
String

Uma chave de pesquisa específica para o fornecedor.

Exceções

SiteMapProvider é null.

-ou-

key é null.

Observações

A classe XmlSiteMapProvider, que é a implementação padrão do fornecedor SiteMapProvider para ASP.NET, utiliza a propriedade SiteMapNode.Url como chave de consulta, caso uma seja fornecida para o nó (se não for fornecida uma URL, é gerado um identificador de rastreio para o nó). Portanto, qualquer SiteMapNode controlo que forneça uma URL e seja utilizado pelo XmlSiteMapProvider deve ter um URL único dentro do âmbito do fornecedor.

Aplica-se a

SiteMapNode(SiteMapProvider, String, String)

Inicializa uma nova instância da SiteMapNode classe usando o URL especificado, a key para identificar a página que o nó representa e o fornecedor do mapa do site que gere 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 com que o nó está associado.

key
String

Uma chave de pesquisa específica para o fornecedor.

url
String

A URL da página que o nó representa dentro do site.

Exceções

SiteMapProvider é null.

-ou-

key é null.

Exemplos

O exemplo de código seguinte demonstra como usar o SiteMapNodeCollection construtor para criar uma nova SiteMapNodeCollection coleção e depois 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

Observações

A classe XmlSiteMapProvider, que é a implementação padrão do fornecedor SiteMapProvider para ASP.NET, utiliza a propriedade SiteMapNode.Url como chave de consulta, caso uma seja fornecida para o nó (se não for fornecida uma URL, é gerado um identificador de rastreio para o nó). Portanto, qualquer SiteMapNode objeto que forneça uma URL e seja usado pelo XmlSiteMapProvider deve ter uma URL única dentro do âmbito do fornecedor.

Aplica-se a

SiteMapNode(SiteMapProvider, String, String, String)

Inicializa uma nova instância da SiteMapNode classe usando a URL especificada, para key identificar a página que o nó representa, um título e o fornecedor do mapa do site que gere 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 com que o nó está associado.

key
String

Uma chave de pesquisa específica para o fornecedor.

url
String

A URL da página que o nó representa dentro do site.

title
String

Uma etiqueta para o nó, frequentemente exibida pelos controlos de navegação.

Exceções

SiteMapProvider é null.

-ou-

key é null.

Exemplos

O exemplo de código seguinte demonstra como usar o SiteMapNode construtor para criar uma nova instância da SiteMapNode classe. O nó é inicializado com valores de uma linha de base 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()

Observações

A classe XmlSiteMapProvider, que é a implementação padrão do fornecedor SiteMapProvider para ASP.NET, utiliza a propriedade SiteMapNode.Url como chave de consulta, caso uma seja fornecida para o nó (se não for fornecida uma URL, é gerado um identificador de rastreio para o nó). Portanto, qualquer SiteMapNode objeto que forneça uma URL e seja usado pelo XmlSiteMapProvider deve ter uma URL única dentro do âmbito do fornecedor.

Se não title for fornecida, as chamadas para a Title propriedade devolvem o String.Empty campo.

Aplica-se a

SiteMapNode(SiteMapProvider, String, String, String, String)

Inicializa uma nova instância da SiteMapNode classe usando a URL especificada, a key para identificar a página que o nó representa, um título e descrição, e o fornecedor do mapa do site que gere 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 com que o nó está associado.

key
String

Uma chave de pesquisa específica para o fornecedor.

url
String

A URL da página que o nó representa dentro do site.

title
String

Uma etiqueta para o nó, frequentemente exibida pelos controlos de navegação.

description
String

Uma descrição da página que o nó representa.

Exceções

SiteMapProvider é null.

-ou-

key é null.

Exemplos

O exemplo de código seguinte demonstra como usar o SiteMapNode construtor para criar um SiteMapNode objeto analisando dados de um ficheiro de texto simples para construir um mapa de site em 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

Observações

A classe XmlSiteMapProvider, que é a implementação padrão do fornecedor SiteMapProvider para ASP.NET, utiliza a propriedade SiteMapNode.Url como chave de consulta, caso uma seja fornecida para o nó (se não for fornecida uma URL, é gerado um identificador de rastreio para o nó). Portanto, qualquer SiteMapNode objeto que forneça uma URL e seja usado pelo XmlSiteMapProvider deve ter uma URL única dentro do âmbito do fornecedor.

Se não title for fornecido ou description ou (ou), as chamadas para as Title propriedades ou Description retornam um String.Empty campo.

Ver também

Aplica-se a

SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String)

Inicializa uma nova instância da SiteMapNode classe usando o fornecedor de mapas do site especificado que gere o nó, URL, título, descrição, funções, atributos adicionais e chaves de recursos explícitas e implícitas 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 com que o nó está associado.

key
String

Uma chave de pesquisa específica para o fornecedor.

url
String

A URL da página que o nó representa dentro do site.

title
String

Uma etiqueta para o nó, frequentemente exibida pelos controlos de navegação.

description
String

Uma descrição da página que o nó representa.

roles
IList

Um IList dos papéis que podem visualizar a página representada pelo SiteMapNode.

attributes
NameValueCollection

A NameValueCollection dos atributos adicionais usados para inicializar o SiteMapNode.

explicitResourceKeys
NameValueCollection

A NameValueCollection de chaves de recursos explícitas usadas para localização.

implicitResourceKey
String

Uma chave de recurso implícita usada para localização.

Exceções

SiteMapProvider é null.

-ou-

key é null.

Observações

A classe XmlSiteMapProvider, que é a implementação padrão do fornecedor SiteMapProvider para ASP.NET, utiliza a propriedade SiteMapNode.Url como chave de consulta, caso uma seja fornecida para o nó (se não for fornecida uma URL, é gerado um identificador de rastreio para o nó). Portanto, qualquer SiteMapNode objeto que forneça uma URL e seja usado pelo XmlSiteMapProvider deve ter uma URL única dentro do âmbito do fornecedor.

A NameValueCollection coleção de atributos com que o SiteMapNode é criado está disponível através da Attributes propriedade, facilitando a aplicação de atributos adicionais a um nó do mapa do sítio e a extensão das suas capacidades sem necessidade de derivar uma classe personalizada para tal.

Forneça uma IList coleção de papéis para fornecer um conjunto de papéis que possam ver o nó quando a SecurityTrimmingEnabled propriedade devolve true. Para obter mais informações, veja SecurityTrimmingEnabled.

O XmlSiteMapProvider fornecedor utiliza a SiteMapNode.Url propriedade como chave de consulta. Portanto, qualquer um SiteMapNode que seja usado pelo XmlSiteMapProvider deve ter uma URL única dentro do âmbito do fornecedor.

Se não title for fornecido ou description ou (ou), as chamadas para as Title propriedades ou Description retornam um String.Empty campo.

Para especificar programaticamente recursos para localização, definir o valor de implicitResourceKey para um nome único que será usado para identificar recursos localizados para o nó ou definir explicitResourceKeys para uma NameValueCollection coleção de name/value pares onde name é a propriedade do nó ou atributo personalizado a localizar e value contém valores de localização para a propriedade do nó ou atributo personalizado. Os valores localizados podem então ser definidos nos ficheiros .resx apropriados. Para mais informações sobre como localizar , TitleDescription, e quaisquer propriedades personalizadas de um SiteMapNode objeto, veja Como: Localizar Site-Map Dados. Para os requisitos de sintaxe da explicitResourceKeys coleção, veja NameValueCollection.

Ver também

Aplica-se a