SiteMapNode Classe

Définition

Représente un nœud dans la structure de plan de site hiérarchique telle que celle décrite par la classe SiteMap et les classes qui implémentent la classe abstraite SiteMapProvider.Represents a node in the hierarchical site map structure such as that described by the SiteMap class and classes that implement the abstract SiteMapProvider class.

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
Héritage
SiteMapNode
Implémente

Exemples

Cette section contient deux exemples de code.This section contains two code examples. Le premier exemple de code montre comment créer une collection de nœuds de plan de site et y ajouter des éléments.The first code example demonstrates how to create a new site map node collection and add elements to it. Le deuxième exemple de code montre comment charger des données de plan de site à partir d’un fichier texte.The second code example demonstrates how to load site map data from a text file.

L’exemple de code suivant montre comment utiliser le SiteMapNodeCollection constructeur pour créer une nouvelle SiteMapNodeCollection collection, puis y ajouter des éléments avec la Add méthode.The following code example demonstrates how to use the SiteMapNodeCollection constructor to create a new SiteMapNodeCollection collection, and then add elements to it with the Add method.

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

L’exemple de code suivant montre comment SimpleTextSiteMapProvider analyse un fichier texte qui contient des données de plan de site dans des chaînes délimitées par des virgules.The following code example demonstrates how the SimpleTextSiteMapProvider parses a text file that contains site map data in comma-delimited strings. Un nouvel SiteMapNode objet est ajouté aux collections de suivi internes de la classe pour chaque ligne lue à partir du fichier.A new SiteMapNode object is added to the internal tracking collections of the class for each line that is read from the file.

Cet exemple de code fait partie d’un exemple plus complet fourni SiteMapProvider pour la classe.This code example is part of a larger example provided for the SiteMapProvider class.

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

Un SiteMapNode objet représente une page de site Web dans une structure de plan de site.A SiteMapNode object represents a Web site page in a site map structure. SiteMapNodeles objets sont chargés par la SiteMap classe statique au moment de l’exécution à l’aide d’un ou plusieurs fournisseurs de plan de site pour charger les données de plan de site à partir du stockage persistant dans la mémoire.SiteMapNode objects are loaded by the static SiteMap class at run time using one or more site map providers to load site map data from persistent storage into memory. SiteMapNodeles objets sont encapsulés SiteMapNodeItem par la classe pour être utilisés par les contrôles serveur Web SiteMapPath , tels que le contrôle.SiteMapNode objects are wrapped by the SiteMapNodeItem class for use by Web server controls, such as the SiteMapPath control.

La SiteMapNode classe inclut plusieurs propriétés utilisées pour décrire une page unique dans un site Web, notamment les propriétés qui décrivent une page, telles que les Urlpropriétés Title, et Description .The SiteMapNode class includes several properties that are used to describe a single page in a Web site, including properties that describe a page, such as the Url, Title, and Description properties. Alors que Url la propriété est utilisée par XmlSiteMapProvider la classe, qui est le fournisseur de plan de site par défaut pour ASP.net, comme clé de recherche dans les collections internes que le fournisseur utilise pour SiteMapNode effectuer le suivi des Key nœuds, la classe prend en charge un propriété qui peut être utilisée par les fournisseurs de plan de site pour suivre les nœuds.Whereas the Url property is used by the XmlSiteMapProvider class, which is the default site map provider for ASP.NET, as a lookup key in the internal collections that the provider uses to track nodes, the SiteMapNode class supports a basic Key property that can be used by site map providers to track nodes. En outre, la Url propriété est utilisée par les contrôles de navigation pour restituer des liens hypertexte vers des pages dans une structure de navigation.Additionally, the Url property is used by navigation controls to render hyperlinks to pages within a navigation structure. La Title propriété est un nom convivial pour le SiteMapNode, est souvent le même que le titre HTML d’un formulaire Web et est utilisé par les contrôles de navigation pour restituer des étiquettes simples.The Title property is a friendly name for the SiteMapNode, is often the same as the HTML title of a Web Form, and is used by navigation controls to render simple labels. Enfin, une NameValueCollection collection d’attributs Attributes supplémentaires est disponible pour les fournisseurs de plan de SiteMapNode site qui utilisent des objets, mais qui requièrent des propriétés supplémentaires SiteMapNode qui ne sont pas disponibles dans la classe de base.Finally, a NameValueCollection collection of additional Attributes attributes is available to site map providers that use SiteMapNode objects, but require additional properties that are not available in the base SiteMapNode class.

Constructeurs

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.Initializes a new instance of the SiteMapNode class, using the specified key to identify the page that the node represents and the site map provider that manages the node.

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.Initializes a new instance of the SiteMapNode class using the specified URL, a key to identify the page that the node represents, and the site map provider that manages the node.

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.Initializes a new instance of the SiteMapNode class using the specified URL, a key to identify the page that the node represents, a title, and the site map provider that manages the node.

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.Initializes a new instance of the SiteMapNode class using the specified URL, a key to identify the page that the node represents, a title and description, and the site map provider that manages the node.

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.Initializes a new instance of the SiteMapNode class using the specified site map provider that manages the node, URL, title, description, roles, additional attributes, and explicit and implicit resource keys for localization.

Propriétés

Attributes

Obtient ou définit une collection d'attributs supplémentaires au-delà des propriétés fortement typées définies pour la classe SiteMapNode.Gets or sets a collection of additional attributes beyond the strongly typed properties that are defined for the SiteMapNode class.

ChildNodes

Obtient ou définit tous les nœuds enfants de l'objet SiteMapNode actuel issus du fournisseur SiteMapProvider associé.Gets or sets all the child nodes of the current SiteMapNode object from the associated SiteMapProvider provider.

Description

Obtient ou définit une description du SiteMapNode.Gets or sets a description for the SiteMapNode.

HasChildNodes

Obtient une valeur indiquant si le SiteMapNode actuel possède des nœuds enfants.Gets a value indicating whether the current SiteMapNode has any child nodes.

Item[String]

Obtient ou définit un attribut personnalisé issu de la collection Attributes ou une chaîne de ressource fondée sur la clé spécifiée.Gets or sets a custom attribute from the Attributes collection or a resource string based on the specified key.

Key

Obtient une chaîne qui représente une clé de recherche pour un nœud de plan de site.Gets a string representing a lookup key for a site map node.

NextSibling

Obtient le nœud SiteMapNode suivant sur le même niveau hiérarchique que le nœud actuel, selon la propriété ParentNode (si elle existe).Gets the next SiteMapNode node on the same hierarchical level as the current one, relative to the ParentNode property (if one exists).

ParentNode

Obtient ou définit l'objet SiteMapNode qui constitue le parent du nœud actuel.Gets or sets the SiteMapNode object that is the parent of the current node.

PreviousSibling

Obtient l'objet SiteMapNode précédent sur le même niveau que l'objet actuel, en fonction de l'objet ParentNode (s'il existe).Gets the previous SiteMapNode object on the same level as the current one, relative to the ParentNode object (if one exists).

Provider

Obtient le fournisseur SiteMapProvider qui effectue le suivi de l'objet SiteMapNode.Gets the SiteMapProvider provider that the SiteMapNode object is tracked by.

ReadOnly

Obtient ou définit une valeur qui indique si le nœud de plan de site peut être modifié.Gets or sets a value indicating whether the site map node can be modified.

ResourceKey

Obtient ou définit la clé de ressource utilisée pour localiser le SiteMapNode.Gets or sets the resource key that is used to localize the SiteMapNode.

Roles

Obtient ou définit une collection de rôles associés à l’objet SiteMapNode, qui est utilisée pendant le filtrage de sécurité.Gets or sets a collection of roles that are associated with the SiteMapNode object, used during security trimming.

RootNode

Obtient le nœud racine du fournisseur racine dans une hiérarchie de fournisseur de plan de site.Gets the root node of the root provider in a site map provider hierarchy. Si aucune hiérarchie de fournisseur n'existe, la propriété RootNode obtient le nœud racine du fournisseur actuel.If no provider hierarchy exists, the RootNode property gets the root node of the current provider.

Title

Obtient ou définit le titre de l'objet SiteMapNode.Gets or sets the title of the SiteMapNode object.

Url

Obtient ou définit l'URL de la page que l'objet SiteMapNode représente.Gets or sets the URL of the page that the SiteMapNode object represents.

Méthodes

Clone()

Crée un objet qui constitue une copie du nœud actuel.Creates a new node that is a copy of the current node.

Clone(Boolean)

Crée une copie qui constitue une copie du nœud actuel, en clonant éventuellement tous les nœuds parents et ancêtres du nœud actuel.Creates a new copy that is a copy of the current node, optionally cloning all parent and ancestor nodes of the current node.

Equals(Object)

Obtient une valeur indiquant si le SiteMapNode actuel est identique à l'objet spécifié.Gets a value indicating whether the current SiteMapNode is identical to the specified object.

GetAllNodes()

Récupère une collection en lecture seule de tous les objets SiteMapNode qui sont descendants du nœud appelant, indépendamment du degré de séparation.Retrieves a read-only collection of all SiteMapNode objects that are descendants of the calling node, regardless of the degree of separation.

GetDataSourceView(SiteMapDataSource, String)

Récupère l'objet SiteMapDataSourceView associé au nœud courant.Retrieves the SiteMapDataSourceView object that is associated with the current node.

GetExplicitResourceString(String, String, Boolean)

Récupère une chaîne localisée selon un attribut SiteMapNode à localiser, une chaîne par défaut à retourner si aucune ressource n'est trouvée, et une valeur Boolean qui indique s'il faut lever une exception si aucune ressource n'est trouvée.Retrieves a localized string based on a SiteMapNode attribute to localize, a default string to return if no resource is found, and a Boolean value indicating whether to throw an exception if no resource is found.

GetHashCode()

Retourne le code de hachage de l'objet SiteMapNode.Returns the hash code of the SiteMapNode object.

GetHierarchicalDataSourceView()

Récupère l'objet SiteMapHierarchicalDataSourceView associé au nœud courant.Retrieves the SiteMapHierarchicalDataSourceView object that is associated with the current node.

GetImplicitResourceString(String)

Obtient une chaîne localisée selon le nom d'attribut et la propriété ResourceKey spécifiées par le SiteMapProvider qui sert au suivi du SiteMapNode.Gets a localized string based on the attribute name and ResourceKey property that is specified by the SiteMapProvider by which the SiteMapNode is tracked.

GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
IsAccessibleToUser(HttpContext)

Obtient une valeur qui indique si l'utilisateur peut afficher le nœud de plan de site spécifié dans le contexte spécifié.Gets a value indicating whether the specified site map node can be viewed by the user in the specified context.

IsDescendantOf(SiteMapNode)

Obtient une valeur qui indique si le nœud de plan de site actuel est un enfant ou un descendant direct du nœud spécifié.Gets a value indicating whether the current site map node is a child or a direct descendant of the specified node.

MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
ToString()

Convertit la valeur de cette instance de la classe SiteMapNode en une représentation équivalente sous forme de chaîne.Converts the value of this instance of the SiteMapNode class to its equivalent string representation.

Implémentations d’interfaces explicites

ICloneable.Clone()

Crée un objet qui constitue une copie du nœud actuel.Creates a new node that is a copy of the current node. Pour obtenir une description de ce membre, consultez Clone().For a description of this member, see Clone().

IHierarchyData.GetChildren()

Récupère les éléments de données enfants hiérarchiques de l’élément actuel.Retrieves the hierarchical children data items of the current item. Pour obtenir une description de ce membre, consultez GetChildren().For a description of this member, see GetChildren().

IHierarchyData.GetParent()

Récupère le parant hiérarchique de l’élément actuel.Retrieves the hierarchical parent of the current item. Pour obtenir une description de ce membre, consultez GetParent().For a description of this member, see GetParent().

IHierarchyData.HasChildren

Obtient une valeur indiquant si l’objet SiteMapNode actuel possède des nœuds enfants.Gets a value that indicates whether the current SiteMapNode object has any child nodes. Pour obtenir une description de ce membre, consultez HasChildren.For a description of this member, see HasChildren.

IHierarchyData.Item

Obtient l'élément de données hiérarchiques.Gets the hierarchical data item. Pour obtenir une description de ce membre, consultez Item.For a description of this member, see Item.

IHierarchyData.Path

Obtient le chemin d’accès à l’élément de données hiérarchiques.Gets the path of the hierarchical data item. Pour obtenir une description de ce membre, consultez Path.For a description of this member, see Path.

IHierarchyData.Type

Obtient une chaîne qui représente le nom du type de l'élément de données hiérarchiques.Gets a string that represents the type name of the hierarchical data item. Pour obtenir une description de ce membre, consultez Type.For a description of this member, see Type.

INavigateUIData.Description

Récupère la propriété Description du nœud de plan de site.Gets the Description property of the site map node. Pour obtenir une description de ce membre, consultez Description.For a description of this member, see Description.

INavigateUIData.Name

Récupère la propriété Title du nœud de plan de site.Gets the Title property of the site map node. Pour obtenir une description de ce membre, consultez Name.For a description of this member, see Name.

INavigateUIData.NavigateUrl

Récupère la propriété Url du nœud de plan de site.Gets the Url property of the site map node. Pour obtenir une description de ce membre, consultez NavigateUrl.For a description of this member, see NavigateUrl.

INavigateUIData.Value

Récupère la propriété Title du nœud de plan de site.Gets the Title property of the site map node. Pour obtenir une description de ce membre, consultez Value.For a description of this member, see Value.

S’applique à

Voir aussi