Filtrar una lista de SharePoint Foundation desde un parámetro de la querystring
Toda esta historia empezó cuando, haciendo un proyecto sobre SharePoint Foundation 2010 necesitábamos una forma fácil de filtrar los típicos webparts - o en inglés out-of-the-box - de listas personalizadas en base a un parámetro de la querystring.
Lo primero que hice fué buscarlo en codeplex, a ver si había algo que lo hiciera y no encontré ninguno así que me propuse hacer el mío y aquí lo tienen en la siguiente ruta: https://wpquerystring.codeplex.com.
Nota: El proyecto y el código fuente está en inglés, lo traduje por motivos "universalistas" y para que mas gente lo pueda pillar. Asumo que lo que descarguéis es el .wsp en vuestro servidor de SharePoint.
Despliegue de la solución
Primero, ubicar el .wsp en alguna carpeta física de vuestro servidor con SharePoint 2010 y desde la famosa carpeta 14 introducir el siguiente comando:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN>stsadm
-o addsolution -filename "c:\datos\WPQueryStringFilter.wsp"
La ruta "C:\datos\" es de ejemplo.
Lo siguiente es desplegar la solución, para hacerlo rápido darle a la siguiente sentencia:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN>stsadm
-o deploysolution -name hansbaumann.SharePoint2010.WPQueryStringFilter.wsp -allcontenturls -immediate -allowgacdeployment
Una vez que esté desplegado, debéis activar la característica, hay varias formas pero ahora sí entramos en el entorno de SharePoint:
Preparando la prueba
Para poder probar vamos a crear un sitio de grupo, y a la lista de tareas le metemos unos cuantos registros:
Teniendo estos registros al final los filtraremos por el campo "Estado". Ahora nos vamos a la configuración de la colección de sitios:
Desde aquí vamos a por las características de la colección de sitios. Si no aparece esta opción, hacer clic sobre "Ir a la configuración del sitio de nivel superior".
Después, veremos la lista de las características, entre ellas debería apareceros la nuestra:
Activamos la características a través del botón y nos debería aparecer como la siguiente figura:
Ahora que tenemos la característica creamos una página de elementos web en blanco, en principio da igual el formato, yo tengo esta por ejemplo:
Agregamos primero el elemento web de la lista de noticias.
Ahora agregamos nuestro elemento web.
Ya tenemos el elemento web agregado, ahora sólo falta conectarlo. Desde el elemento web de noticias que agregamos primero, establecer la conexión seleccionando las opción que muestro en la imagen.
Nos aparece un cuadro de diálogo, seguir los dos pasos que os muestro:
Veremos que la conexión está establecida pero no muestra datos:
Guardamos la página y ahora en la caja de texto de la dirección url de la página vamos a agregar, a la ruta de la página que hemos creado el parámetro type=En curso, similar a la siguiente imagen:
¡Listo!, la conexión está establecida. Ahora, si queremos cambiar el nombre del parámetro (por defecto en el código fuente es type basta con ir a la configuración del elemento web:
En SharePoint Server 2010 hay formas mas avanzadas de hacerlo, pero en Foundation tenemos pocos recursos.