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 |
---|---|
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. |
|
Especifica si el menú es horizontal o vertical. En el código de ejemplo anterior, la orientación es horizontal. |
|
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. |
|
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 |
---|---|
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. |
|
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. |
|
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. |
|
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. |
|
Recorta los tipos especificados que no están ubicados directamente debajo del sitio actual o de uno de sus antecesores. |
|
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. |
|
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 |
---|---|
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. |
|
Obtiene el objeto PortalSiteMapProvider adjuntado de manera predeterminada al menú de navegación global. |
|
Obtiene el objeto PortalSiteMapProvider adjuntado de manera predeterminada al menú de navegación actual o la barra de herramientas Inicio rápido. |
|
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". |
|
Obtiene un objeto PortalSiteMapProvider con la propiedad NavigationType establecida en Global. |
|
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. |
|
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. |
|
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". |
|
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