SiteMapNode Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.
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. Le premier exemple de code montre comment créer une collection de nœuds de carte de site et y ajouter des éléments. Le deuxième exemple de code montre comment charger des données de plan de site à partir d’un fichier texte.
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
L’exemple de code suivant montre comment analyser SimpleTextSiteMapProvider
un fichier texte qui contient des données de plan de site dans des chaînes délimitées par des virgules. Un nouvel SiteMapNode objet est ajouté aux collections de suivi interne de la classe pour chaque ligne lue à partir du fichier.
Cet exemple de code fait partie d’un exemple plus grand fourni pour la 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
Remarques
Un SiteMapNode objet représente une page de site Web dans une structure de plan de site. SiteMapNode les objets sont chargés par la classe statique SiteMap au moment de l’exécution à l’aide d’un ou de plusieurs fournisseurs de plan de site pour charger les données de plan de site à partir d’un stockage persistant dans la mémoire. SiteMapNode les objets sont encapsulés par la SiteMapNodeItem classe pour une utilisation par les contrôles serveur web, tels que le SiteMapPath contrôle.
La SiteMapNode classe comprend 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 , Titleet Description . Alors que la Url propriété est utilisée par la XmlSiteMapProvider 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 suivre les nœuds, la SiteMapNode classe prend en charge une propriété de base Key qui peut être utilisée par les fournisseurs de plan de site pour suivre les nœuds. En outre, la Url propriété est utilisée par les contrôles de navigation pour afficher des liens hypertexte vers des pages au sein d’une structure de navigation. La Title propriété est un nom convivial pour , SiteMapNodeest souvent identique au titre HTML d’un formulaire web et est utilisée par les contrôles de navigation pour afficher des étiquettes simples. Enfin, une NameValueCollection collection d’attributs supplémentaires Attributes est disponible pour les fournisseurs de plan de site qui utilisent SiteMapNode des objets, mais qui nécessitent des propriétés supplémentaires qui ne sont pas disponibles dans la classe de base SiteMapNode .
Constructeurs
SiteMapNode(SiteMapProvider, String) |
Initialise une nouvelle instance de la classe SiteMapNode à l'aide du |
SiteMapNode(SiteMapProvider, String, String) |
Initialise une nouvelle instance de la classe SiteMapNode à l'aide de l'URL spécifiée, un |
SiteMapNode(SiteMapProvider, String, String, String) |
Initialise une nouvelle instance de la classe SiteMapNode à l'aide de l'URL spécifiée, un |
SiteMapNode(SiteMapProvider, String, String, String, String) |
Initialise une nouvelle instance de la classe SiteMapNode à l'aide de l'URL spécifiée, un |
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. |
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. |
ChildNodes |
Obtient ou définit tous les nœuds enfants de l'objet SiteMapNode actuel issus du fournisseur SiteMapProvider associé. |
Description |
Obtient ou définit une description de l'objet SiteMapNode. |
HasChildNodes |
Obtient une valeur indiquant si le SiteMapNode actuel possède des nœuds enfants. |
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. |
Key |
Obtient une chaîne qui représente une clé de recherche pour un nœud de plan de site. |
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). |
ParentNode |
Obtient ou définit l'objet SiteMapNode qui constitue le parent du nœud actuel. |
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). |
Provider |
Obtient le fournisseur SiteMapProvider qui effectue le suivi de l'objet SiteMapNode. |
ReadOnly |
Obtient ou définit une valeur qui indique si le nœud de plan de site peut être modifié. |
ResourceKey |
Obtient ou définit la clé de ressource utilisée pour localiser le 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é. |
RootNode |
Obtient le nœud racine du fournisseur racine dans une hiérarchie de fournisseur de plan de site. Si aucune hiérarchie de fournisseur n'existe, la propriété RootNode obtient le nœud racine du fournisseur actuel. |
Title |
Obtient ou définit le titre de l'objet SiteMapNode. |
Url |
Obtient ou définit l'URL de la page que l'objet SiteMapNode représente. |
Méthodes
Clone() |
Crée un objet qui constitue une copie du nœud actuel. |
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. |
Equals(Object) |
Obtient une valeur indiquant si le SiteMapNode actuel est identique à l'objet spécifié. |
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. |
GetDataSourceView(SiteMapDataSource, String) |
Récupère l'objet SiteMapDataSourceView associé au nœud courant. |
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. |
GetHashCode() |
Retourne le code de hachage de l'objet SiteMapNode. |
GetHierarchicalDataSourceView() |
Récupère l'objet SiteMapHierarchicalDataSourceView associé au nœud courant. |
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. |
GetType() |
Obtient le Type de l'instance actuelle. (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é. |
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é. |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (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. |
Implémentations d’interfaces explicites
ICloneable.Clone() |
Crée un objet qui constitue une copie du nœud actuel. Pour obtenir une description de ce membre, consultez Clone(). |
IHierarchyData.GetChildren() |
Récupère les éléments de données enfants hiérarchiques de l’élément actuel. Pour obtenir une description de ce membre, consultez GetChildren(). |
IHierarchyData.GetParent() |
Récupère le parant hiérarchique de l’élément actuel. Pour obtenir une description de ce membre, consultez GetParent(). |
IHierarchyData.HasChildren |
Obtient une valeur indiquant si l’objet SiteMapNode actuel possède des nœuds enfants. Pour obtenir une description de ce membre, consultez HasChildren. |
IHierarchyData.Item |
Obtient l'élément de données hiérarchiques. Pour obtenir une description de ce membre, consultez Item. |
IHierarchyData.Path |
Obtient le chemin d’accès à l’élément de données hiérarchiques. Pour obtenir une description de ce membre, consultez Path. |
IHierarchyData.Type |
Obtient une chaîne qui représente le nom du type de l'élément de données hiérarchiques. Pour obtenir une description de ce membre, consultez Type. |
INavigateUIData.Description |
Récupère la propriété Description du nœud de plan de site. Pour obtenir une description de ce membre, consultez Description. |
INavigateUIData.Name |
Récupère la propriété Title du nœud de plan de site. Pour obtenir une description de ce membre, consultez Name. |
INavigateUIData.NavigateUrl |
Récupère la propriété Url du nœud de plan de site. Pour obtenir une description de ce membre, consultez NavigateUrl. |
INavigateUIData.Value |
Récupère la propriété Title du nœud de plan de site. Pour obtenir une description de ce membre, consultez Value. |