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