jueves, 20 de enero de 2011

Consulta CAML con los últimos N elementos

Muchas veces necesitamos consultar una lista cualquiera en Sharepoint, retornando solo los últimos items actualizados, por ejemplo, el famoso carrusel de imágenes con las últmas 5 fotos cargadas, pues bien, si tuvieramos una lista de imágenes y quisieramos desarrollar un webpart con un look and feel ya establecido, la recomendación seria usar el objeto SPQuery para implementar una consulta CAML, con las siguientes características:

Clausula OrderBy:
<OrderBy><FieldRef Name='Modified' Ascending='FALSE'/></OrderBy>

Propiedad RowLimit:
miConsulta.RowLimit = 10;

Adicional a esto, si quisiera solo retornar las columnas o campos específicos, debo indicarlo asi:

Propiedad ViewFields:

miConsulta.ViewFields = "<FieldRef Name=\"Title\"/>" + "<FieldRef Name=\"Description\"/>" + "<FieldRef Name=\"Link\"/>";

El código completo sería asi, suponiendo que se tiene un objeto SPList lista:

SPQuery miConsulta = new SPQuery();

miConsulta.Query = "<OrderBy><FieldRef Name='Modified' Ascending='FALSE'/></OrderBy>";
miConsulta.RowLimit = 5;
miConsulta.ViewFields = "<FieldRef Name=\"Title\"/>" + "<FieldRef Name=\"Description\"/>" + "<FieldRef Name=\"Link\"/>";
SPListItemCollection myColl = lista.GetItems(miConsulta);

De aqui, ya sería recorrer los items de la lista, o llenar un DataTable para continuar con la lógica de nuestro webpart.

Saludos,

No hay comentarios:

Publicar un comentario