SiteMap 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.
La SiteMap classe est une représentation en mémoire de la structure de navigation d’un site, fournie par un ou plusieurs fournisseurs de carte de site. Cette classe ne peut pas être héritée.
public ref class SiteMap abstract sealed
public static class SiteMap
type SiteMap = class
Public Class SiteMap
- Héritage
-
SiteMap
Exemples
Cette section contient deux exemples de code. Le premier exemple de code montre comment déclarer un fournisseur de carte de site dans un fichier Web.config. Le deuxième exemple de code montre comment utiliser un SiteMap objet.
L’exemple de code suivant est une section de configuration Web.config qui montre comment un XmlSiteMapProvider objet est déclaré comme objet par défaut SiteMapProvider .
<siteMap defaultProvider="MyXmlSiteMapProvider" enabled="true">
<providers>
<add name="MyXmlSiteMapProvider"
description="The site map provider that reads in the .sitemap XML files."
type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
siteMapFile="my.sitemap" />
</providers>
</siteMap>
L’exemple de code suivant montre comment utiliser l’objet SiteMap en accédant à ses membres statiques pour afficher des informations sur les propriétés et RootNode les CurrentNode propriétés. Comparez-la à la sortie rendue par le SiteMapPath contrôle.
<%@ Page language="c#"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
// Examine the CurrentNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.CurrentNode.Title + "<br />");
Response.Write("<font COLOR='red'>" + SiteMap.CurrentNode.Url + "</font><br />");
// What nodes are children of the CurrentNode?
if (SiteMap.CurrentNode.HasChildNodes) {
IEnumerator childNodesEnumerator = SiteMap.CurrentNode.ChildNodes.GetEnumerator();
while (childNodesEnumerator.MoveNext()) {
// Prints the Title of each node.
Response.Write(childNodesEnumerator.Current.ToString() + "<br />");
}
}
Response.Write("<hr />");
// Examine the RootNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.RootNode.Title + "<br />");
Response.Write(SiteMap.RootNode.Url + "<br />");
// What nodes are children of the RootNode?
if (SiteMap.RootNode.HasChildNodes) {
IEnumerator rootNodesChildrenEnumerator = SiteMap.RootNode.ChildNodes.GetEnumerator();
while (rootNodesChildrenEnumerator.MoveNext()) {
// Prints the Title of each node.
Response.Write(rootNodesChildrenEnumerator.Current.ToString() + "<br />");
}
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="Form1" runat="server">
<asp:SiteMapPath
runat="server"
ID="SiteMapPath1"
ShowToolTips="false"/>
</form>
</body>
</html>
<%@ Page language="VB"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Private Sub Page_Load(sender As Object, e As System.EventArgs)
' Examine the CurrentNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.CurrentNode.Title & "<br />")
Response.Write("<font COLOR='red'>" & SiteMap.CurrentNode.Url & "</font><br />")
' What nodes are children of the CurrentNode?
If (SiteMap.CurrentNode.HasChildNodes) Then
Dim childNodesEnumerator As IEnumerator = SiteMap.CurrentNode.ChildNodes.GetEnumerator()
While (childNodesEnumerator.MoveNext())
' Prints the Title of each node.
Response.Write(childNodesEnumerator.Current.ToString() & "<br />")
End While
End If
Response.Write("<hr />")
' Examine the RootNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.RootNode.Title & "<br />")
Response.Write(SiteMap.RootNode.Url & "<br />")
' What nodes are children of the RootNode?
If (SiteMap.RootNode.HasChildNodes) Then
Dim rootNodesChildrenEnumerator As IEnumerator = SiteMap.RootNode.ChildNodes.GetEnumerator()
While (rootNodesChildrenEnumerator.MoveNext())
' Prints the Title of each node.
Response.Write(rootNodesChildrenEnumerator.Current.ToString() & "<br />")
End While
End If
End Sub ' Page_Load
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="Form1" runat="server">
<asp:SiteMapPath
runat="server"
ID="SiteMapPath1"
ShowToolTips="false"/>
</form>
</body>
</html>
Remarques
Les cartes de site sont utilisées conjointement avec les SiteMapDataSourcecontrôles , SiteMapPathet d’autres contrôles pour afficher une interface de navigation efficace pour permettre aux utilisateurs de naviguer sur un site Web. Un objet SiteMap est un composant de l’infrastructure de navigation de site ASP.NET qui fournit l’accès aux informations de carte de site en lecture seule pour les développeurs de pages et de contrôles à l’aide des contrôles de navigation et de SiteMapDataSource. D’autres composants de l’infrastructure de navigation de site ASP.NET incluent les classes SiteMapProvider et XmlSiteMapProvider, le fichier Web.json et les différents contrôles qui fonctionnent avec la classe SiteMap, comme le contrôle SiteMapPath, pour afficher le contenu et les menus.
Les fonctions suivantes sont SiteMap les suivantes :
Il fournit le nœud racine de la hiérarchie de navigation de site (il ne peut y avoir qu’un seul nœud racine).
Il identifie le fournisseur de carte de site qui est le principal, ou le fournisseur par défaut.
Il effectue le suivi de tous les objets fournisseurs utilisés pour créer le SiteMap.
En fait, il SiteMap s’agit d’un conteneur pour une collection hiérarchique d’objets SiteMapNode . Toutefois, le SiteMap n’entretient pas les relations entre les nœuds ; il le délègue plutôt aux fournisseurs de carte de site. Il SiteMap agit en tant qu’interface pour les informations de navigation du site (sous forme d’objets SiteMapNode ) détenues par ces fournisseurs de cartes de site. Il effectue le suivi des fournisseurs à partir desquels il peut accéder aux données de navigation de site et expose sa Providers collection. Un fournisseur peut stocker ses informations de carte de site de quelque manière que ce soit, tant qu’il étend la SiteMapProvider classe abstraite, la SiteMap classe peut être initialisée avec succès à partir de celle-ci.
Le fournisseur par défaut de la SiteMap classe est la XmlSiteMapProvider classe, qui fonctionne avec un fichier de configuration XML, Web.plan. Toutefois, vous pouvez écrire votre propre SiteMapProvider objet et l’utiliser pour initialiser la carte de site de votre site. Pour obtenir un exemple de fournisseur de carte de site personnalisé, consultez SiteMapProvider.
Une configuration de carte de site par défaut est spécifiée qui gère la configuration de navigation de site. Vous pouvez remplacer cette configuration dans le fichier Web.config, si vous choisissez d’écrire votre propre fournisseur de cartes de site.
La SiteMap classe offre uniquement des membres statiques pour les performances et est accessible à tout moment dans un site donné à partir d’un formulaire Web ou d’un contrôle serveur web.
Propriétés
| Nom | Description |
|---|---|
| CurrentNode |
Obtient un SiteMapNode contrôle qui représente la page actuellement demandée. |
| Enabled |
Obtient une valeur booléenne indiquant si un fournisseur de carte de site est spécifié dans le fichier Web.config et si le fournisseur de carte de site est activé. |
| Provider |
Obtient l’objet par défaut SiteMapProvider de la carte de site actuelle. |
| Providers |
Obtient une collection en lecture seule d’objets nommés SiteMapProvider disponibles pour la SiteMap classe. |
| RootNode |
Obtient un SiteMapNode objet qui représente la page de niveau supérieur de la structure de navigation du site. |
Événements
| Nom | Description |
|---|---|
| SiteMapResolve |
Se produit lorsque la CurrentNode propriété est accessible. |