SiteMapNode Constructeurs
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.
Initialise une nouvelle instance de la SiteMapNode classe et l’associe à l’objet spécifié SiteMapProvider .
Surcharges
| Nom | Description |
|---|---|
| SiteMapNode(SiteMapProvider, String) |
Initialise une nouvelle instance de la SiteMapNode classe à l’aide du paramètre spécifié |
| SiteMapNode(SiteMapProvider, String, String) |
Initialise une nouvelle instance de la SiteMapNode classe à l’aide de l’URL spécifiée, a |
| SiteMapNode(SiteMapProvider, String, String, String) |
Initialise une nouvelle instance de la SiteMapNode classe à l’aide de l’URL spécifiée, a |
| SiteMapNode(SiteMapProvider, String, String, String, String) |
Initialise une nouvelle instance de la SiteMapNode classe à l’aide de l’URL spécifiée, a |
| SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) |
Initialise une nouvelle instance de la SiteMapNode classe à l’aide du fournisseur de cartes de site spécifié qui gère le nœud, l’URL, le titre, la description, les rôles, les attributs supplémentaires et les clés de ressources explicites et implicites pour la localisation. |
SiteMapNode(SiteMapProvider, String)
Initialise une nouvelle instance de la SiteMapNode classe à l’aide du paramètre spécifié key pour identifier la page que le nœud représente et le fournisseur de carte 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
Remarques
La XmlSiteMapProvider classe, qui est l’implémentation par défaut SiteMapProvider du fournisseur pour ASP.NET, utilise la SiteMapNode.Url propriété comme clé de recherche, si elle est fournie pour le nœud (si une URL n’est pas 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 le XmlSiteMapProvider fournisseur doit avoir une URL unique dans l’étendue du fournisseur.
S’applique à
SiteMapNode(SiteMapProvider, String, String)
Initialise une nouvelle instance de la SiteMapNode classe à l’aide de l’URL spécifiée, a key pour identifier la page que le nœud représente et le fournisseur de carte 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
URL de la page que le nœud représente dans le site.
Exceptions
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 par défaut SiteMapProvider du fournisseur pour ASP.NET, utilise la SiteMapNode.Url propriété comme clé de recherche, si elle est fournie pour le nœud (si une URL n’est pas 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 le XmlSiteMapProvider fournisseur doit avoir une URL unique dans l’étendue du fournisseur.
S’applique à
SiteMapNode(SiteMapProvider, String, String, String)
Initialise une nouvelle instance de la SiteMapNode classe à l’aide de l’URL spécifiée, a key pour identifier la page que le nœud représente, un titre et le fournisseur de carte 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
URL de la page que le nœud représente dans le site.
- title
- String
Étiquette du nœud, souvent affichée par les contrôles de navigation.
Exceptions
Exemples
L’exemple de code suivant montre comment utiliser le SiteMapNode constructeur pour créer une 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 large 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 par défaut SiteMapProvider du fournisseur pour ASP.NET, utilise la SiteMapNode.Url propriété comme clé de recherche, si elle est fournie pour le nœud (si une URL n’est pas 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 le XmlSiteMapProvider fournisseur doit avoir une URL unique dans l’étendue du fournisseur.
Si aucune valeur 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 SiteMapNode classe à l’aide de l’URL spécifiée, a key pour identifier la page que le nœud représente, un titre et une description et le fournisseur de carte 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
URL de la page que le nœud représente dans le site.
- title
- String
Étiquette du nœud, souvent affichée par les contrôles de navigation.
- description
- String
Description de la page que représente le nœud.
Exceptions
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 une carte 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 par défaut SiteMapProvider du fournisseur pour ASP.NET, utilise la SiteMapNode.Url propriété comme clé de recherche, si elle est fournie pour le nœud (si une URL n’est pas 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 le XmlSiteMapProvider fournisseur doit avoir une URL unique dans l’étendue du fournisseur.
Si aucun ou description n’est title fourni, les appels à l’ou TitleDescription aux propriétés 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 SiteMapNode classe à l’aide du fournisseur de cartes de site spécifié qui gère le nœud, l’URL, le titre, la description, les rôles, les attributs supplémentaires et les clés de ressources 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
URL de la page que le nœud représente dans le site.
- title
- String
Étiquette du nœud, souvent affichée par les contrôles de navigation.
- description
- String
Description de la page que représente le nœud.
- roles
- IList
Rôles IList autorisés à afficher la page représentée par le SiteMapNode.
- attributes
- NameValueCollection
Attributs NameValueCollection supplémentaires utilisés pour initialiser le SiteMapNode.
- explicitResourceKeys
- NameValueCollection
Clé NameValueCollection de ressource explicite utilisée pour la localisation.
- implicitResourceKey
- String
Clé de ressource implicite utilisée pour la localisation.
Exceptions
Remarques
La XmlSiteMapProvider classe, qui est l’implémentation par défaut SiteMapProvider du fournisseur pour ASP.NET, utilise la SiteMapNode.Url propriété comme clé de recherche, si elle est fournie pour le nœud (si une URL n’est pas 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 le XmlSiteMapProvider fournisseur doit avoir une URL unique dans l’étendue du fournisseur.
La NameValueCollection collection d’attributs créés SiteMapNode avec est disponible via la Attributes propriété et facilite l’application d’attributs supplémentaires à un nœud de carte de site et étend ses fonctionnalités sans dériver 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 élément utilisé par le XmlSiteMapProvider fournisseur doit avoir une URL unique dans l’étendue du fournisseur.
Si aucun ou description n’est title fourni, les appels à l’ou TitleDescription aux propriétés retournent un String.Empty champ.
Pour spécifier par programmation des ressources pour la localisation, définissez la valeur d’un implicitResourceKey nom unique qui sera utilisé pour identifier les ressources localisées pour le nœud ou définissez explicitResourceKeys sur une NameValueCollection collection de name/value paires où name est la propriété de nœud ou l’attribut personnalisé à localiser et value contient des 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 localisation des Titlepropriétés personnalisées Descriptiond’un SiteMapNode objet, voir How to : Localize Site-Map Data. Pour connaître les exigences de syntaxe de la explicitResourceKeys collection, consultez NameValueCollection.