Compartir a través de


Trabajo con menús y objetos de navegación

Última modificación: domingo, 04 de abril de 2010

Hace referencia a: SharePoint Server 2010

En este artículo
Menús horizontales y verticales
PortalSiteMapDataSource
PortalSiteMapProvider

Las instrucciones de los menús verticales y horizontales para la navegación se declaran en el XML de la página maestra. Se usan dos clases para que funcione la navegación: PortalSiteMapDataSource y PortalSiteMapProvider.

El objeto PortalSiteMapProvider proporciona la jerarquía del sitio (estructura de navegación) y supervisa las relaciones entre los nodos. El objeto PortalSiteMapDataSource asigna funciones de navegación de PortalSiteMapProvider y filtra los elementos de navegación para determinar los que puede ver el usuario en los menús horizontales o verticales o en las rutas de navegación.

Menús horizontales y verticales

Al crear por primera vez una estructura de sitios que incluya un sitio raíz o de nivel superior, más de un sitio web y páginas y sitios adicionales que son secundarios respecto al sitio de nivel superior, Microsoft SharePoint Server 2010 crea dos menús: un menú horizontal (en la parte superior) y un menú vertical (a la izquierda).

Los menús horizontales y verticales se declaran en el marcado de la página maestra. En el ejemplo siguiente se declara un menú horizontal.

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

El menú vertical se declara de forma similar, pero usa propiedades distintas a las del menú horizontal. Estas propiedades son idénticas a las disponibles en el control Menu de ASP.NET.

En la tabla 1 se presentan las propiedades que se incluyen de forma predeterminada en el marcado de página maestra para los menús horizontal y vertical.

Tabla 1. Propiedades incluidas de forma predeterminada en el marcado de página maestra para los menús horizontal y vertical.

Propiedad

Descripción

DataSourceID

Especifica el control de origen de datos que proporciona los datos jerárquicos para este menú. En el código de ejemplo anterior, DataSourceID apunta a un control con el identificador GlobalNavDataSource.

Orientation

Especifica si el menú es horizontal o vertical. En el código de ejemplo anterior, la orientación es horizontal.

StaticDisplayLevels

Especifica el número de niveles de jerarquía que se mostrarán en el menú simultáneamente.

En este ejemplo se especifica 1, lo cual indica que el menú muestra un nivel de jerarquía por debajo del sitio de nivel superior.

MaximumDynamicDisplayLevels

Especifica el número de niveles que se va a mostrar en los menús dinámicos (flotantes).

En este ejemplo se especifica 1, lo que indica que el elemento de menú del primer nivel de la jerarquía del sitio con páginas o sitios secundarios muestra los sitios o las páginas en menús dinámicos.

PortalSiteMapDataSource

PortalSiteMapDataSource es un origen de datos específico de SharePoint Server 2010 que recupera datos del objeto PortalSiteMapProvider y los expone según la interfaz del origen de datos jerárquica de ASP.NET. El objeto PortalSiteMapDataSource especifica el nombre del objeto PortalSiteMapProvider que usa para recuperar datos mediante la propiedad SiteMapProvider de ASP.NET.

Si el marcado de la página maestra incluye el atributo DataSourceID="GlobalNavDataSource", la aplicación devuelve un objeto PortalSiteMapDataSource.

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

Tabla 2. Propiedades PortalSiteMapDataSource comunes

Propiedad

Descripción

ShowStartingNode

Determina si el origen de datos devuelve el nodo de inicio.

Si esta propiedad se establece en true, el origen de datos devuelve el nodo de inicio. El menú recibe el nodo de inicio, que puede ser el nodo raíz, y los elementos situados por debajo del nodo de inicio.

Si esta propiedad se establece en false, el origen de datos no devuelve el nodo de inicio. El menú recibe sólo los elementos situados por debajo del nodo de inicio.

StartFromCurrentNode

Afecta al punto en el que se inicia el origen de datos. Esta propiedad establece la sección de la jerarquía global del sitio que el control de origen de datos devuelve al menú.

Si esta propiedad se establece en true, SharePoint Server 2010 indica al objeto PortalSiteMapDataSource que aplique las reglas para determinar dónde se debe iniciar.

StartingNodeOffset

Obtiene o establece un desplazamiento entero positivo o negativo a partir del nodo de inicio que determina la jerarquía del sitio de nivel superior que expone el objeto DataSourceControl.

El valor predeterminado es 0, lo que indica que la jerarquía del sitio de nivel superior expuesta por el objeto SiteMapDataSource es la misma que el nodo de inicio.

El efecto de esta propiedad es variable, no definido y depende de detalles de la jerarquía del sitio que no se tratan en este tema.

TrimNonCurrentTypes

Permite el recorte de nodos basado tanto en contexto como en tipo.

En este ejemplo, TrimNonCurrentTypes="Heading", lo cual indica al origen de datos que quite los nodos de tipo Heading que no se encuentren directamente debajo del nodo actual.

Puede especificar varios valores para esta propiedad en una lista delimitada por comas. Los valores disponibles se definen en la enumeración NodeTypes.

TrimNonAncestorTypes

Recorta los tipos especificados que no están ubicados directamente debajo del sitio actual o de uno de sus antecesores.

TrimNonAncestorDescendantTypes

Recorta los nodos de los tipos especificados que no están ubicados debajo del sitio actual o de uno de sus sitios antecesores o descendientes.

TreatStartingNodeAsCurrent

Determina el nodo que se trata como el nodo actual con fines de recorte. De manera predeterminada, nodo actual se refiere al nodo que representa el elemento que se está visitando actualmente.

Si TreatStartingNodeAsCurrent se establece en true, el nodo de inicio del origen de datos se trata como el nodo de contexto o recorte.

PortalSiteMapProvider

El objeto PortalSiteMapProvider es el origen verdadero de los datos de navegación jerárquica y proporciona los datos al objeto PortalSiteMapDataSource. PortalSiteMapProvider recupera nodos del almacén SPNavigation de Microsoft SharePoint Foundation 2010. El objeto SPNavigation se usa para crear agrupaciones y vínculos estáticos. Después de proporcionar agrupaciones y vínculos estáticos, la aplicación combina elementos dinámicos que representan sitios web y páginas con las agrupaciones y vínculos estáticos. SharePoint Server 2010 también aplica el recorte de seguridad para que los usuarios sólo vean los elementos de navegación para los que tienen permisos de navegación.

Declare proveedores con nombre en el archivo web.config de la aplicación para hacer que estén ampliamente accesibles. Las declaraciones de los dos objetos PortalSiteMapProvider más importantes (CombinedNavSiteMapProvider y CurrentNavSiteMapProvider) se muestran en el siguiente código.

<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" />

Nota

El nombre del primer proveedor, CombinedNavSiteMapProvider, coincide con el valor especificado para la propiedad SiteMapProvider. Esto indica que se creará un menú horizontal.

En la tabla 3 se describen algunas de las propiedades PortalSiteMapProvider más comunes.

Tabla 3. Propiedades PortalSiteMapProvider comunes

Propiedad

Descripción

NavigationType

Obtiene o establece el tipo de navegación para este proveedor de navegación. Entre las opciones disponibles se incluyen Combined, Current y Global, que se comportan de la forma especificada por las tres propiedades siguientes: CombinedNavSiteMapProvider, CurrentSiteMapProvider y CurrentSiteNavSiteMapProviderNoEncode.

CombinedNavSiteMapProvider

Obtiene el objeto PortalSiteMapProvider adjuntado de manera predeterminada al menú de navegación global.

CurrentNavSiteMapProvider

Obtiene el objeto PortalSiteMapProvider adjuntado de manera predeterminada al menú de navegación actual o la barra de herramientas Inicio rápido.

CurrentNavSiteMapProviderNoEncode

Obtiene el objeto PortalSiteMapProvider adjuntado de manera predeterminada a la ruta de navegación.

Declare esta propiedad de forma prácticamente idéntica a CurrentSiteNavSiteMapProvider, pero excluya el atributo EncodeOutput="true".

GlobalNavSiteMapProvider

Obtiene un objeto PortalSiteMapProvider con la propiedad NavigationType establecida en Global.

EncodeOutput

Obtiene o establece si hay que codificar en HTML la propiedad Title de cualquier objeto PortalSiteMapNode devuelto por el proveedor.

El control de menú de ASP.NET no codifica en HTML automáticamente la propiedad Title al realizar la representación. Sin embargo, el control SiteMapPath de ASP.NET codifica en HTML la propiedad Title.

DynamicChildLimit

Obtiene o establece el número de elementos secundarios dinámicos que se mostrarán en cada nivel. Los elementos secundarios dinámicos pueden ser subsitios (cualquier objeto SPWeb) y páginas.

RequireUniqueKeysForNodes

Obtiene o establece si cada uno de los nodos devueltos desde el proveedor debe tener valores únicos para las propiedades Key.

Para que los menús resaltados funcionen correctamente en los vínculos y encabezados creados, establezca RequireUniqueKeysForNodes="false". Esto no causará problemas a la hora de adjuntar a un control de menú de ASP.NET mediante un origen de datos; sin embargo, para casi todos los demás controles de presentación, declare RequireUniqueKeysForNodes="true".

IncludeSubSites

Obtiene o establece si este proveedor devuelve subsitios.

Vea también

Referencia

Microsoft.SharePoint.Publishing.Navigation

Microsoft.SharePoint.Navigation

Conceptos

Procedimiento para personalizar la navegación

Personalización de los controles y proveedores de navegación

Otros recursos

Modificación de la configuración de navegación mediante la interfaz de usuario