5. UI de listas en SharePoint
• Hasta 2010
– CAML
• No estándar
• Difícil y aparatoso
• A partir de 2010
– XSLT
• Estándar W3C
– http://www.w3.org/TR/xslt
• Independiente del esquema de la
lista
• Soporte para Ribbon
6. XSLT
• Transforma XML en otra cosa
– Mayoritariamente a HTML
pero podría ser otro XML o
incluso PDF (usando XML-FO)
• Usa plantillas (hojas de
estilo) y expresiones en
XPath para emitir un nuevo
documento a partir del XML
de entrada
8. Renderizado (main.xsl)
• Los datos de la lista vienen como XML en la
expresión /dsQueryResponse/Rows
• Para seleccionar los valores de las columnas
usamos
– <xsl:value-of select="@Columna"/>
• Las variables globales del main.xsl nos sirven
para el tener el contexto de los datos
– http://msdn.microsoft.com/en-us/library/ff806158.aspx
• También se usan vwstyles.xsl y fldtypes.xsl
10. ¿Y si no nos gusta?
• Podemos ajustar la vista en la definición de
lista
– Pero no controlamos como se renderizan las
columnas ni el chrome
• Podemos cambiar el fichero XSLT por uno
nuestro
– Lo mejor es partir de una copia de los ficheros por
defecto
12. DataFormWebPart
• La nueva versión de DataViewWebPart
• Nos ofrece la capacidad parecida a XLV
– A diferencia de XLV, soporta orígenes de datos que
no sean de SharePoint
• SQL Server, XML, Servicios web...
13. ContentQueryWebPart
• Realiza una consulta a SharePoint y muestra
los resultados con una hoja de estilo XSLT
• Se pueden personalizar editando el
descriptor de la web part
• Se pueden hacer consultas recursivas
• XSLT ubicado en Style LibraryXSL Style
SheetsItemStyle.xsl
16. Desarrollo a medida
• A favor
– Tenemos total libertad pero menos posibilidades
de configuración
– Podemos usar AJAX, jQuery o Silverlight
• En contra
– Mayor complejidad de la solución
– Posibles problemas de rendimiento
– Versionado
19. Resumen
Modo de presentación A favor En contra
XsltListViewWP • Fácil personalización
• Integración con Ribbon
• Solo orígenes de datos
de SharePoint
DataFormWP • Fácil personalización
• Orígenes de datos
heterogéneos
• Agregación de
resultados
• Sólo se puede editar
con SharePoint Designer
ContentQueryWP • Se puede configurar
desde el navegador
• Facilmente
personalizable
• Agregación de
resultados
• Complejidad de
mantenimiento
• No está presente en
SharePoint Foundation
Desarrollo a medida • Total libertad y
flexibilidad
• Tiempo de desarrollo
• Coste de
mantenimiento
The XML coming in to your web part matches the XSL select path /dsQueryResponse/Rows
Every input XML always has a root node, and the forward slash “/” is the template match:
<xsl:template match="/" ddwrt:ghost="hide">
Columns (Fields) are reference with the “@” syntax, e.g.:
<xsl:value-of select="@Title"/>