SiteMap Classe

Définition

La classe SiteMap est une représentation en mémoire de la structure de navigation d'un site, fournie par un ou plusieurs fournisseurs de plan 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 plan de site dans un fichier de 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é en tant qu’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' SiteMap objet en accédant à ses membres statiques pour afficher des informations sur les RootNode CurrentNode Propriétés et. Comparez-le à la sortie restituée 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 plans de sites sont utilisés conjointement avec SiteMapDataSource les SiteMapPath contrôles, et pour afficher une interface de navigation efficace afin que les utilisateurs puissent naviguer sur un site Web. un SiteMap objet est un composant de l’infrastructure de navigation du site ASP.NET qui permet d’accéder aux informations de plan de site en lecture seule pour les développeurs de contrôles et de pages à l’aide de la navigation et des SiteMapDataSource contrôles. les autres composants de l’infrastructure de navigation du site ASP.NET incluent les SiteMapProvider XmlSiteMapProvider classes et, le fichier Web. sitemap et les différents contrôles qui fonctionnent avec la SiteMap classe, tels que le SiteMapPath contrôle, pour afficher le contenu et les menus.

Le SiteMap a plusieurs fonctions :

  • Il fournit le nœud racine de la hiérarchie de navigation du site (il ne peut y avoir qu’un seul nœud racine).

  • Il identifie le fournisseur de plan de site qui est le principal ou le fournisseur par défaut.

  • Il effectue le suivi de tous les objets de fournisseur utilisés pour créer le SiteMap .

Fondamentalement, SiteMap est un conteneur pour une collection hiérarchique d' SiteMapNode objets. Toutefois, le SiteMap ne gère pas les relations entre les nœuds ; il le délègue aux fournisseurs de plan de site. Le SiteMap agit comme une interface avec les informations de navigation du site (sous la forme d' SiteMapNode objets) détenues par ces fournisseurs de plan 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 plan de site de quelque façon que ce soit, à condition qu’il étende la SiteMapProvider classe abstraite, la SiteMap classe puisse être initialisée avec succès.

Le fournisseur par défaut de la SiteMap classe est la XmlSiteMapProvider classe, qui fonctionne avec un fichier de configuration XML, Web. sitemap. Toutefois, vous pouvez écrire votre propre SiteMapProvider objet et l’utiliser pour initialiser le plan de site de votre site. Pour obtenir un exemple de fournisseur de plan de site personnalisé, consultez SiteMapProvider .

Une configuration de plan de site par défaut est spécifiée pour gérer la configuration de la navigation du site. Vous pouvez remplacer cette configuration dans le fichier Web.config, si vous choisissez d’écrire votre propre fournisseur de plan de site.

La SiteMap classe offre uniquement des membres statiques pour les performances et elle est accessible à tout moment dans un site donné à partir d’un formulaire Web ou d’un contrôle serveur Web.

Propriétés

CurrentNode

Obtient un contrôle SiteMapNode qui représente la page actuellement demandée.

Enabled

Obtient une valeur Boolean qui indique si un fournisseur de plan de site est spécifié dans le fichier Web.config et si ce fournisseur est activé.

Provider

Obtient l'objet SiteMapProvider par défaut pour le plan de site actuel.

Providers

Obtient une collection en lecture seule d'objets SiteMapProvider nommés à la disposition de la classe SiteMap.

RootNode

Obtient un objet SiteMapNode qui représente la page de niveau supérieur de la structure de navigation du site.

Événements

SiteMapResolve

Se produit en cas d'accès à la propriété CurrentNode.

S’applique à

Voir aussi