Partager via


Utiliser les menus et les objets de navigation

Dernière modification : dimanche 4 avril 2010

S’applique à : SharePoint Server 2010

Dans cet article
Menus horizontal et vertical
PortalSiteMapDataSource
PortalSiteMapProvider

Vous déclarez les instructions des menus horizontal et vertical pour la navigation dans le XML de la page maître. Deux classes assurent le fonctionnement de la navigation : PortalSiteMapDataSource et PortalSiteMapProvider.

L'objet PortalSiteMapProvider fournit la hiérarchie du site (structure de navigation) et surveille la relation entre les nœuds. L'objet PortalSiteMapDataSource mappe les fonctionnalités de navigation à partir de l'objet PortalSiteMapProvider et filtre les éléments de navigation afin de déterminer ceux qui peuvent être affichés à l'utilisateur dans les menus horizontal ou vertical ou dans les barres de navigation.

Lorsque vous créez pour la première fois une structure de site qui inclut un site racine ou de niveau supérieur, plus d’un site Web, ainsi que des pages et des sites supplémentaires enfants du site de niveau supérieur, Microsoft SharePoint Server 2010 crée deux menus : un menu horizontal (supérieur) et un menu vertical (gauche).

Les menus horizontal et vertical sont déclarés dans le balisage de la page maître. L'exemple suivant déclare un menu horizontal.

<SharePoint:AspMenu ID="GlobalNav" Runat="server"
  DataSourceID="GlobalNavDataSource"
  Orientation="Horizontal"
  StaticDisplayLevels="1"
  MaximumDynamicDisplayLevels="1" />

Le menu vertical est déclaré de la même façon, mais n’utilise pas les mêmes propriétés que le menu horizontal. Ces propriétés sont identiques à celles disponibles dans le contrôle ASP.NET Menu.

Le Tableau 1 présente les propriétés incluses par défaut dans le balisage de page maître pour les menus horizontal et vertical.

Tableau 1. Propriétés incluses par défaut dans le balisage de page maître pour les menus horizontal et vertical.

Propriété

Description

DataSourceID

Spécifie le contrôle de source de données qui fournit les données hiérarchiques pour ce menu. Dans l’exemple de code précédent, DataSourceID pointe vers un contrôle dont l’ID est GlobalNavDataSource.

Orientation

Indique si le menu est horizontal ou vertical. Dans l'exemple de code précédent, l'orientation est horizontale.

StaticDisplayLevels

Spécifie le nombre de niveaux de hiérarchie à afficher dans le menu en même temps.

Dans cet exemple, 1 est spécifié, indiquant que le menu affiche un seul niveau de hiérarchie en dessous du site de niveau supérieur.

MaximumDynamicDisplayLevels

Spécifie le nombre de niveaux à afficher dans les menus dynamiques (volants).

Dans cet exemple, 1 est spécifié, indiquant que l’élément de menu sur le premier niveau dans la hiérarchie de site comportant des pages ou des sites enfants affiche ces sites ou pages dans des menus dynamiques.

PortalSiteMapDataSource

L’objet PortalSiteMapDataSource est une source de données spécifique à SharePoint Server 2010 qui extrait des données à partir de l’objet PortalSiteMapProvider et les expose en fonction de l’interface de source de données hiérarchiques ASP.NET. L’objet PortalSiteMapDataSource spécifie le nom de l’objet PortalSiteMapProvider qu’il utilise pour extraire les données via la propriété ASP.NET SiteMapProvider.

Lorsque le balisage de page maître inclut l’attribut DataSourceID="GlobalNavDataSource", l’application renvoie un objet PortalSiteMapDataSource.

<PublishingNavigation:PortalSiteMapDataSource ID="GlobalNavDataSource"
  Runat="server"
  SiteMapProvider="CombinedNavSiteMapProvider"
  ShowStartingNode="false"
  StartFromCurrentNode="true"
  StartingNodeOffset="0"
  TrimNonCurrentTypes="Heading"
  TreatStartingNodeAsCurrent="true" />

Tableau 2. Propriétés PortalSiteMapDataSource communes

Propriété

Description

ShowStartingNode

Détermine si le nœud de démarrage est retourné par la source de données.

Lorsque cette propriété a la valeur true, la source de données retourne le nœud de démarrage. Le menu reçoit le nœud de démarrage, qui peut être le nœud racine et les éléments situés au-dessous du nœud de démarrage.

Lorsque cette propriété a la valeur false, la source de données ne retourne pas le nœud de démarrage. Le menu reçoit uniquement les éléments situés au-dessous du nœud de démarrage.

StartFromCurrentNode

Détermine l’emplacement auquel la source de données commence. Cette propriété définit la section de la hiérarchie de site global que le contrôle de source de données renvoie au menu.

Lorsque cette propriété a la valeur true, SharePoint Server 2010 indique à l’objet PortalSiteMapDataSource d’appliquer les règles permettant de déterminer l’emplacement de départ.

StartingNodeOffset

Obtient ou définit un offset d'entier positif ou négatif par rapport au nœud de démarrage qui détermine la hiérarchie de site de niveau supérieur exposée par l'objet DataSourceControl.

La valeur par défaut est 0, ce qui indique que la hiérarchie de site de niveau supérieur exposée par l’objet SiteMapDataSource est identique à celle du nœud de démarrage.

L'effet de cette propriété est variable, non définie et dépend des détails de la hiérarchie de site non abordés dans cette rubrique.

TrimNonCurrentTypes

Permet de filtrer l’accès aux nœuds en fonction du contexte et du type.

Dans cet exemple, TrimNonCurrentTypes="Heading", ce qui indique à la source de données de supprimer tous les nœuds de type Heading qui ne se trouvent pas directement sous le nœud actif.

Vous pouvez spécifier plusieurs valeurs pour cette propriété dans une liste délimitée par des virgules. Les valeurs disponibles sont définies dans l'énumération NodeTypes.

TrimNonAncestorTypes

Filtre tous les types spécifiés qui ne sont pas directement situés sous le site actuel ou sous l'un de ses ancêtres.

TrimNonAncestorDescendantTypes

Filtre tous les nœuds de types spécifiés qui ne sont pas situés sous le site actuel ou sous l'un de ses sites ancêtres ou descendants.

TreatStartingNodeAsCurrent

Détermine le nœud traité en tant que nœud actuel à des fins de filtrage. Par défaut, le nœud actuel fait référence au nœud représentant l'élément actuellement visité.

Lorsque TreatStartingNodeAsCurrent a la valeur true, le nœud de démarrage de la source de données est considéré comme le nœud de contexte ou de filtrage.

PortalSiteMapProvider

L’objet PortalSiteMapProvider est la véritable source de données de navigation hiérarchique et il fournit les données à l’objet PortalSiteMapDataSource. L’objet PortalSiteMapProvider extrait les nœuds du magasin Microsoft SharePoint Foundation 2010SPNavigation. L’objet SPNavigation vous permet de créer des regroupements et des liens statiques. Une fois que vous avez spécifié des regroupements et des liens statiques, l’application fusionne les éléments dynamiques qui représentent des sites et des pages Web avec les regroupements et les liens statiques. SharePoint Server 2010 applique également le filtrage de sécurité afin que les utilisateurs ne voient que les éléments de navigation qui leur sont accessibles.

Déclarez les fournisseurs nommés dans le fichier web.config de l’application pour les rendre largement accessibles. Les déclarations des deux objets PortalSiteMapProvider les plus importants, en l’occurrence CombinedNavSiteMapProvider et CurrentNavSiteMapProvider, sont indiquées dans le code suivant.

<add name="CombinedNavSiteMapProvider" description="MOSS 2007 provider for Combined navigation"
   Type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider"
   NavigationType="Combined" EncodeOutput="true">
<add name="CurrentNavSiteMapProvider" description="MOSS 2007 provider for Current navigation"
   Type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider"
   NavigationType="Current" EncodeOutput="true" />

Notes

Le nom du premier fournisseur, CombinedNavSiteMapProvider, correspond à la valeur spécifiée pour la propriété SiteMapProvider. Cela indique qu’un menu horizontal sera créé.

Le Tableau 3 décrit quelques-unes des propriétés PortalSiteMapProvider les plus courantes.

Tableau 3. Propriétés PortalSiteMapProvider communes

Propriété

Description

NavigationType

Obtient ou définit le type de navigation pour ce fournisseur de navigation. Les options disponibles sont Combined, Current et Global, et se comportent comme spécifié par les trois propriétés suivantes : CombinedNavSiteMapProvider, CurrentSiteMapProvider et CurrentSiteNavSiteMapProviderNoEncode.

CombinedNavSiteMapProvider

Obtient l'objet PortalSiteMapProvider qui est attaché par défaut au menu de navigation globale.

CurrentNavSiteMapProvider

Obtient l'objet PortalSiteMapProvider qui est attaché par défaut au menu de navigation actuelle ou à la barre d'outils du menu de lancement rapide.

CurrentNavSiteMapProviderNoEncode

Obtient l'objet PortalSiteMapProvider qui est attaché par défaut à la navigation à l'aide de la barre de navigation.

Déclarez cette propriété de la même manière que CurrentSiteNavSiteMapProvider, en excluant toutefois l'attribut EncodeOutput="true".

GlobalNavSiteMapProvider

Obtient un objet PortalSiteMapProvider dont la propriété NavigationTypeest définie sur Global.

EncodeOutput

Obtient ou définit une valeur indiquant s'il est nécessaire de coder en HTML la propriété Title de n'importe quel objet PortalSiteMapNode retourné par le fournisseur.

Le contrôle de menu ASP.NET ne code pas automatiquement en HTML la propriété Title lors du rendu. En revanche, le contrôle ASP.NET SiteMapPath code en HTML la propriété Title.

DynamicChildLimit

Obtient ou définit le nombre d'éléments enfants dynamiques à afficher à chaque niveau. Les éléments enfants dynamiques peuvent être des sous-sites (tout objet SPWeb) et des pages.

RequireUniqueKeysForNodes

Obtient ou définit une valeur indiquant si les nœuds retournés à partir du fournisseur doivent chacun avoir des valeurs uniques pour leurs propriétés Key.

Pour que la mise en surbrillance des menus fonctionne correctement sur les liens et les titres créés, définissez RequireUniqueKeysForNodes="false". Cela ne provoque pas de problèmes lors de l’attachement à un contrôle de menu ASP.NET via une source de données, mais pour la plupart des autres contrôles d’affichage vous devez déclarer RequireUniqueKeysForNodes="true".

IncludeSubSites

Obtient ou définit une valeur indiquant si ce fournisseur retourne des sous-sites.

Voir aussi

Référence

Microsoft.SharePoint.Publishing.Navigation

Microsoft.SharePoint.Navigation

Concepts

Procédure : Personnalisation de la navigation

Personnaliser les fournisseurs et les contrôles de navigation

Autres ressources

Modifier les paramètres de navigation par le biais de l'interface utilisateur