lunes, 9 de marzo de 2009

Agrupando datos dentro de un ListView con LinqDataSource

Navegando por ahi me encontre con este enlace New Grouping Grid Skins: Vista, Bold, Win2k3 and Soft en el que presentan un buen post sobre el uso del ListView y el LinqDataSorce en el que hacen agrupamiento por categorias (ver explicacion en Building a VS2008 Styled Grid with the ListView and DataPager Controls). En ese post explican paso a paso como realizar el ejercicio, razón por la cual aca no lo hago. Yo simplemente lo que hice fue utilizar el codigo proporcionado en el enlace anterior, separando un poco los JavaScript's, Css y finalmente separe en una clase los eventos usados en el DataPager y en otra los del ListView facilitando usar en la misma pagina o en multiples paginas el control si necesidad de entrar a duplicar codigo y facilitando su mantenimiento futuro.


Clase que contiene los eventos de ordenamiento realizados sobre el ListView
Clase que contiene los eventos del paginado realizados por el DataPager


Clase de la pagina con llamado a los eventos del ListView y DataPager


Si comparan esta version con la original notaran que los cambios son sutiles y que lo unico que busca es facilitar el uso de estos controles.

En este sitio podran descargar la versión reestructurada y la base de datos empleada ya que use la base de datos de NorthWind de Microsoft.
Modificaciones realizadas
  1. Se utilizo una Vista (Customer and Suppliers by City) predefinida en la base de datos de NorthWind.
  2. Se separo el contenido JavaScript, Css y C# de la pagina para facilitar su mantenimiento y reutilizacion.
Anexo Imagenes del producto final.

ENLACES DE DESCARGA

NOTA: El paginado esta definido por cada 8 grupos, si por alguna razon despues de realizada la consulta de obtiene un numero de grupos inferior a 8 (para este caso), al darle clic para pasar a la siguiente pagina, nos presentara un error.