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:

listado de tareas

Teniendo estos registros al final los filtraremos por el campo "Estado". Ahora nos vamos a la configuración de la colección de sitios:

configuracion del sitio

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

configuraciónd de colección de sitios

Después, veremos la lista de las características, entre ellas debería apareceros la nuestra:

listado de características

Activamos la características a través del botón y nos debería aparecer como la siguiente figura:

característica activada

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:

pagina elementos web en blanco

Agregamos primero el elemento web de la lista de noticias.

webpart noticias

Ahora agregamos nuestro elemento web.

agregar web part

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.

Crear conexion

Nos aparece un cuadro de diálogo, seguir los dos pasos que os muestro:

Conexion paso 1

Conexion paso 2

Veremos que la conexión está establecida pero no muestra datos:

Conexión

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:

test de la página

¡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:

Configuración del elemento web

En SharePoint Server 2010 hay formas mas avanzadas de hacerlo, pero en Foundation tenemos pocos recursos.