Ejemplo Filtro y Paginado en Datagrid avanzado
Un Datagrid es un componente que toda aplicación debería implementar por ser una parte fundamental para presentar los datos al usuario. Proporcionar flexibilidad y usabilidad al Datagrid que implementemos nos va a permitir una mejor manera de presentar e interactuar con los datos. Es por ello que necesitamos tener en cuenta dos funcionalidades muy importantes: Filtrar y Paginar.
Filtrar y Paginar
El filtrado de los datos nos va a permitir trabajar con un set de estos acotados con respecto al conjunto original. Esto quiere decir que si tenemos un ArrayCollection de 1000 filas podemos proporcionar el filtrado de algunos campos para que este conjunto se reduzca a por ejemplo 50 filas, que serian las que nos interesan.
Por otra parte, presentar en una misma pantalla 50, 100 o mas filas como resultado de una consulta a nuestra base de datos, es antiperformance: primero porque el volumen de datos puede hacer mas lento nuestro sistema, y segundo porque un usuario generalmente no puede procesar tantos resultados al mismo tiempo. Es por ello que el paginado nos permite acotar la cantidad de filas que un usuario va a ver por vez. Por ejemplo podemos configurar nuestro Datagrid para que muestre 20 filas por vez. Si tenemos un conjunto de datos de 100 filas, entonces estas se van a dividir en 5 páginas. Cada página tendrá 20 filas.
Explicación del ejemplo.
Tenemos 2 archivos: globalscritp.as y DatagridAvanzado.mxml
globalscript.as es un archivo donde está toda la lógica que vamos a utilizar para crear los datos, realizar el filtrado y paginado. En este archivo vamos a encontrar las siguientes funciones:
InitApp(): Crea los datos con los que llenaremos el Datagrid, establece las variables para los tamaños de páginas y la cantidad de ellas , refresca el DataProvider y crea los botones de siguiente, próximo, anterior, etc.
createNavBar(): Crea los botones siguiente, próximo, anterior, y último de acuerdo a la cantidad de filas que tengamos
navigatePage(): refresca los datos por grupos de páginas
refreshDataProvider(): recalcula el dataProvider de acuerdo a los filtros implementados y paginado
filterVANaam(): es la función que realiza el filtro. Se encarga de devolver true o false de acuerdo a si la fila debe permanecer o no.
filterVANm(): esta función se llama cuando se hace click en el boton filtrar y llama a la función filterVANaam para que filtre, refresca el datagrid con las filas elegidas y recalcula las páginas.
DatagridAvanzado.mxml es un archivo donde encontramos los componentes visuales del ejemplo. En este caso, donde está el Datagrid.
Ejemplo Práctico
Aquí les dejo un ejemplo práctico de un Datagrid avanzado. Realmente está muy bueno porque es compacto (ya que no requiere mas de 2 archivos para llevarlo a cabo), útil y funciona a la perfección. Lo único que deben tener en cuenta, es que el DataProvider se crea en memoria por razones prácticas. Uds deberán cambiar dicha funcionalidad para hacerlo trabajar con su base de datos.
Para ver el código fuente deben clickear boton derecho -> view source.
Les dejo el ejemplo aquí.


