Partager via


SiteMapNode Constructeurs

Définition

Initialise une nouvelle instance de la classe SiteMapNode et l'associe à l'objet SiteMapProvider spécifié.

Surcharges

SiteMapNode(SiteMapProvider, String)

Initialise une nouvelle instance de la classe SiteMapNode à l'aide du key spécifié pour identifier la page que le nœud représente et le fournisseur de plan de site qui gère le nœud.

SiteMapNode(SiteMapProvider, String, String)

Initialise une nouvelle instance de la classe SiteMapNode à l'aide de l'URL spécifiée, un key pour identifier la page que le nœud représente et le fournisseur de plan de site qui gère le nœud.

SiteMapNode(SiteMapProvider, String, String, String)

Initialise une nouvelle instance de la classe SiteMapNode à l'aide de l'URL spécifiée, un key pour identifier la page que le nœud représente, un titre, et le fournisseur de plan de site qui gère le nœud.

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

Initialise une nouvelle instance de la classe SiteMapNode à l'aide de l'URL spécifiée, un key pour identifier la page que le nœud représente, un titre et une description, et le fournisseur de plan de site qui gère le nœud.

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

Initialise une nouvelle instance de la classe SiteMapNode à l'aide du fournisseur de plan de site spécifié qui gère les nœud, URL, titre, description, rôles, attributs supplémentaires et clés de ressource explicites et implicites pour la localisation.

SiteMapNode(SiteMapProvider, String)

Initialise une nouvelle instance de la classe SiteMapNode à l'aide du key spécifié pour identifier la page que le nœud représente et le fournisseur de plan de site qui gère le nœud.

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)

Paramètres

provider
SiteMapProvider

SiteMapProvider auquel le nœud est associé.

key
String

Clé de recherche spécifique au fournisseur.

Exceptions

SiteMapProvider a la valeur null.

-ou-

key a la valeur null.

Remarques

La XmlSiteMapProvider classe, qui est l’implémentation du fournisseur par défaut SiteMapProvider pour ASP.NET, utilise la SiteMapNode.Url propriété comme clé de recherche, si une clé est fournie pour le nœud (si aucune URL n’est fournie, un identificateur de suivi est généré pour le nœud). Par conséquent, tout SiteMapNode contrôle qui fournit une URL et qui est utilisé par doit XmlSiteMapProvider avoir une URL unique dans l’étendue du fournisseur.

S’applique à

SiteMapNode(SiteMapProvider, String, String)

Initialise une nouvelle instance de la classe SiteMapNode à l'aide de l'URL spécifiée, un key pour identifier la page que le nœud représente et le fournisseur de plan de site qui gère le nœud.

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)

Paramètres

provider
SiteMapProvider

SiteMapProvider auquel le nœud est associé.

key
String

Clé de recherche spécifique au fournisseur.

url
String

L'URL de la page que le nœud représente au sein du site.

Exceptions

SiteMapProvider a la valeur null.

-ou-

key a la valeur null.

Exemples

L’exemple de code suivant montre comment utiliser le SiteMapNodeCollection constructeur pour créer une SiteMapNodeCollection collection, puis y ajouter des éléments avec la Add méthode .

// 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

Remarques

La XmlSiteMapProvider classe, qui est l’implémentation du fournisseur par défaut SiteMapProvider pour ASP.NET, utilise la SiteMapNode.Url propriété comme clé de recherche, si une clé est fournie pour le nœud (si aucune URL n’est fournie, un identificateur de suivi est généré pour le nœud). Par conséquent, tout SiteMapNode objet qui fournit une URL et qui est utilisé par XmlSiteMapProvider doit avoir une URL unique dans l’étendue du fournisseur.

S’applique à

SiteMapNode(SiteMapProvider, String, String, String)

Initialise une nouvelle instance de la classe SiteMapNode à l'aide de l'URL spécifiée, un key pour identifier la page que le nœud représente, un titre, et le fournisseur de plan de site qui gère le nœud.

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)

Paramètres

provider
SiteMapProvider

SiteMapProvider auquel le nœud est associé.

key
String

Clé de recherche spécifique au fournisseur.

url
String

L'URL de la page que le nœud représente au sein du site.

title
String

Une étiquette pour le nœud, souvent affichée par les contrôles de navigation.

Exceptions

SiteMapProvider a la valeur null.

-ou-

key a la valeur null.

Exemples

L’exemple de code suivant montre comment utiliser le SiteMapNode constructeur pour créer une nouvelle instance de la SiteMapNode classe. Le nœud est initialisé avec des valeurs d’une ligne de base de données Microsoft Access.

Cet exemple de code fait partie d’un exemple plus grand fourni pour la BuildSiteMap méthode.

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()

Remarques

La XmlSiteMapProvider classe, qui est l’implémentation du fournisseur par défaut SiteMapProvider pour ASP.NET, utilise la SiteMapNode.Url propriété comme clé de recherche, si une clé est fournie pour le nœud (si aucune URL n’est fournie, un identificateur de suivi est généré pour le nœud). Par conséquent, tout SiteMapNode objet qui fournit une URL et qui est utilisé par XmlSiteMapProvider doit avoir une URL unique dans l’étendue du fournisseur.

Si aucune n’est title fournie, les appels à la Title propriété retournent le String.Empty champ.

S’applique à

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

Initialise une nouvelle instance de la classe SiteMapNode à l'aide de l'URL spécifiée, un key pour identifier la page que le nœud représente, un titre et une description, et le fournisseur de plan de site qui gère le nœud.

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)

Paramètres

provider
SiteMapProvider

SiteMapProvider auquel le nœud est associé.

key
String

Clé de recherche spécifique au fournisseur.

url
String

L'URL de la page que le nœud représente au sein du site.

title
String

Une étiquette pour le nœud, souvent affichée par les contrôles de navigation.

description
String

Une description de la page que le nœud représente.

Exceptions

SiteMapProvider a la valeur null.

-ou-

key a la valeur null.

Exemples

L’exemple de code suivant montre comment utiliser le SiteMapNode constructeur pour créer un SiteMapNode objet en analysant des données à partir d’un fichier texte simple pour générer un plan de site en mémoire.

Cet exemple de code fait partie d’un exemple plus large fourni pour la classe abstraite 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

Remarques

La XmlSiteMapProvider classe, qui est l’implémentation du fournisseur par défaut SiteMapProvider pour ASP.NET, utilise la SiteMapNode.Url propriété comme clé de recherche, si une clé est fournie pour le nœud (si aucune URL n’est fournie, un identificateur de suivi est généré pour le nœud). Par conséquent, tout SiteMapNode objet qui fournit une URL et qui est utilisé par XmlSiteMapProvider doit avoir une URL unique dans l’étendue du fournisseur.

Si aucune title ou description n’est fournie, les Title appels aux propriétés ou Description retournent un String.Empty champ.

Voir aussi

S’applique à

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

Initialise une nouvelle instance de la classe SiteMapNode à l'aide du fournisseur de plan de site spécifié qui gère les nœud, URL, titre, description, rôles, attributs supplémentaires et clés de ressource explicites et implicites pour la localisation.

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)

Paramètres

provider
SiteMapProvider

SiteMapProvider auquel le nœud est associé.

key
String

Clé de recherche spécifique au fournisseur.

url
String

L'URL de la page que le nœud représente au sein du site.

title
String

Une étiquette pour le nœud, souvent affichée par les contrôles de navigation.

description
String

Une description de la page que le nœud représente.

roles
IList

Un IList des rôles autorisés à consulter la page représentée par le SiteMapNode.

attributes
NameValueCollection

Un NameValueCollection d'attributs supplémentaires utilisé pour initialiser le SiteMapNode.

explicitResourceKeys
NameValueCollection

Un NameValueCollection de clés de ressource explicites utilisé pour la localisation.

implicitResourceKey
String

Une clé de ressource implicite utilisée pour la localisation.

Exceptions

SiteMapProvider a la valeur null.

-ou-

key a la valeur null.

Remarques

La XmlSiteMapProvider classe, qui est l’implémentation du fournisseur par défaut SiteMapProvider pour ASP.NET, utilise la SiteMapNode.Url propriété comme clé de recherche, si une clé est fournie pour le nœud (si aucune URL n’est fournie, un identificateur de suivi est généré pour le nœud). Par conséquent, tout SiteMapNode objet qui fournit une URL et qui est utilisé par XmlSiteMapProvider doit avoir une URL unique dans l’étendue du fournisseur.

La NameValueCollection collection d’attributs avec laquelle SiteMapNode le est créé est disponible via la propriété et facilite l’application Attributes d’attributs supplémentaires à un nœud de plan de site et l’extension de ses fonctionnalités sans dériver d’une classe personnalisée pour ce faire.

Fournissez une IList collection de rôles pour fournir un ensemble de rôles qui peuvent afficher le nœud lorsque la SecurityTrimmingEnabled propriété retourne true. Pour plus d'informations, consultez SecurityTrimmingEnabled.

Le XmlSiteMapProvider fournisseur utilise la SiteMapNode.Url propriété comme clé de recherche. Par conséquent, tout SiteMapNode ce qui est utilisé par doit XmlSiteMapProvider avoir une URL unique dans l’étendue du fournisseur.

Si aucune title ou description n’est fournie, les Title appels aux propriétés ou Description retournent un String.Empty champ.

Pour spécifier par programmation des ressources pour la localisation, définissez la valeur de implicitResourceKey sur un nom unique qui sera utilisé pour identifier les ressources localisées pour le nœud ou définissez explicitResourceKeys sur une NameValueCollection collection de paires où name est la propriété de name/value nœud ou l’attribut personnalisé à localiser et value contient les valeurs de localisation pour la propriété de nœud ou l’attribut personnalisé. Les valeurs localisées peuvent ensuite être définies dans les fichiers .resx appropriés. Pour plus d’informations sur la TitleDescriptionlocalisation des propriétés personnalisées , et d’un SiteMapNode objet, consultez Guide pratique pour localiser Site-Map données. Pour connaître les exigences de syntaxe de la explicitResourceKeys collection, consultez NameValueCollection.

Voir aussi

S’applique à