En estos días, hemos necesitado personalizar un XsltListView WebPart correspondiente a una lista. La solución la encontramos en un artículo en inglés y quería compartirlo traducido para aquellos a los que les cueste encontrar soluciones en inglés.
Pasos a seguir:
- Crear una nueva página de WebParts.
- Añadir WebPart de lista correspondiente a la que quieras personalizar.
- Salir de la edición.
- Editar WebPart para añadir las columnas específicas que desees ver como resultado.
- Abrir la página con SharePoint Designer 2010.
- Seleccionar el WebPart, con lo que en la Ribbon aparecerá el tab “Design” (Diseño).
- Seleccionar ‘Customize Xslt’ > ‘Customize Entire View’.
- Cambiar a la vista de código, con lo que se verá un nuevo nodo con el código Xslt añadido al WebPart.
- Buscar ‘mode="Item"’. Esta es la plantilla principal que gestiona la renderización de cada fila.
- En esta plantilla, buscar <xsl:for-each select="$Fields">. Este bucle se encarga de hacer las llamadas a las plantillas que necesarias para renderizar los campos de cada fila.
- Eliminar u Ocultar el bucle y añadir el HTML personalizado antes del mismo.
- Recordar verificar los cambios en el navegador.
- Al tiempo que nos hemos desecho del bucle Xslt For-each, también podemos eliminar las plantillas correspondientes a los campos, pero como puede resultar engorroso… no pasa nada por dejarlas.
- Una vez tengamos la visualización deseada, hay que copiar el código xslt en un nuevo fichero, por ejemplo “mylistview.xslt” y guardarla en un lugar adecuado.
- Ahora, podremos crear una nueva página y añadir el Web Part de lista tal y como hicimos en el paso 2.
- Editar el WebPart y en la y enlazar el fichero “mylistview.xslt” desde el XSL Link de la sección Miscellaneous.
- Guardar cambios y… ¡Listo! ya tenemos nuestro XsltListView WebPart personalizado.
Fuente Sandeep K Nahta