Paginacion optimizada en ASP.NET
Nuestro buen amigo, Jorge Pedraza, ha escrito un interesante articulo, aquí el detalle:
Paginacion optimizada en ASP.NET
Hola, este articulo trata de resaltar un vía optima y fácil para generar mecanismo eficiente de paginación de datos en ASP.NET 4.0. Dicho mecanismo tiene como objetivo modular la información en bloques de datos especifico desde SQL Server hacia a la aplicación Web ASP.NET, de tal forma se procesa cantidades datos basado en indice numerico, los cuales entregarán información liviana y resumida dentro de la aplicación Web.
Con esto se evita la sobrecarga de grandes volúmenes de datos dentro de la respuesta Web de ASP.NET. Entonces a continuación se explica de forma precisa aspectos clave del artículo.
Parametros de Uso:
Nombre |
Descripción |
PageSize |
Indica el número de registros que se van a mostrar en una página. |
PageIndex |
Indica el índice de la página que se muestra actualmente. El limite inferior para nuestro propósito es Cero. |
RowCount |
Indica la cantidad total de registros que se encuentra en la tabla. |
PageCount |
Indica el número total de páginas. PageCount = (RowCount + PageSize – 1) / PageSize |
Requisito de entorno:
Campo |
Función |
|
Especificación |
ID AutoNumerico |
Row_Number |
SQL Server Genérico |
Si |
No |
SQL Server 2005 o Superior |
Opcional |
Si |
Ejemplo Conceptual:
Nombre |
ID |
PageSize |
PageIndex |
PageCount |
RowCount |
Gustavo |
1 |
10 |
0 |
2 |
20 |
Catherine |
2 |
||||
Kim |
3 |
||||
Humberto |
4 |
||||
Pilar |
5 |
||||
Frances |
6 |
||||
Margaret |
7 |
||||
Carla |
8 |
||||
Jay |
9 |
||||
Ronald |
10 |
||||
Samuel |
11 |
10 |
1 |
||
James |
12 |
||||
Robert |
13 |
||||
François |
14 |
||||
Kim |
15 |
||||
Lili |
16 |
||||
Amy |
17 |
||||
Anna |
18 |
||||
Milton |
19 |
||||
Paul |
20 |
Descripción del Mecanismo:
La idea principal de este mecanismo es paginar los datos desde el origen de datos SQL Server, a través de rutinas especificas contenida en el origen datos, que adicionalmente tambien nos entregara la cantidad total de paginas disponible por mostrar hacia la aplicación Web ASP.NET. Entonce para concretar:
- Se establece uno o más procedimiento almacenado en la base de datos de SQL Server:
- Este maneja dos parametros entradas ( @PageSize, @PageIndex) y uno de salida @PageCount.
- El algoritmo del procedimiento es una consulta de datos (SELECT) basado en cierta condición relacionada con un campo clave del tipo AutoNumerico.
- Este campo es llamado ID, el cual representa la forma de trabajar en modo SQL Server Genérico. En caso de no trabajar con este tipo de campo; se puede tomar como opción la función Row_Number disponible en SQL server 2005 o Superior, para generar ese campo de forma virtual.
- Dicho campo se usara en la condición de la consulta (SELECT) para fijar el resultado pautado. Por ejemplo: todos los ID que estén contenidos entre 1 y 10, como parte de primera pagina.
- Usa la Clase SqlDataReader dentro de la aplicación Web, para recibir el resultado de dicho procedimiento almacenado.
- Se vincula el Resultado del SqlDataReader con el control GridView
- A nivel de programación se crea una forma de paginación con el valor del parametro @PageCount fijado por el procedimiento dentro del proceso actual.
En Resumen:
Se puede apreciar una forma clara y precisa de generar procesos optimizado con la gestion de datos dentro de Aplicaciones Web ASP.NET, que a la final busca mejorara la disponibilidad de información en diferentes entornos limitado de recursos.
Codigo Fuente ASP.NET 4.0 y Base de datos SQL Server 2008 R2 Express:
Links de Interes:
Saludos
Fernando García Loera (MVP Lead – Latin America Region)