¿Puedo usar < asp: dataGrid > localizador con rendimiento de paginación de base de datos?
-
08-07-2019 - |
Pregunta
Tengo un procedimiento de almacenamiento que maneja la paginación a nivel de base de datos, recibiendo @ Tamaño de página y @ Índice de página . Puedo crear otro para devolver @ PageCount , dado un tamaño de página.
¿Puedo hacer que una cuadrícula de datos haga paginación a nivel de base de datos sin tener que desarrollarla fuera del control, utilizando el localizador de control?
Parece que el uso predeterminado de la paginación de cuadrícula de datos recibe todos los resultados de la consulta y realiza la paginación fuera de la base de datos. No es bueno para nosotros, una sobrecarga innecesaria.
Solución
Establecer AllowCustomPaging = " true " en la aspx. Y cuando el enlace de datos haga:
mygrid.VirtualItemCount = pageCount;
mygrid.DataSource = mysource;
mygrid.DataBind();
Basado en su comentario " Uso conexión ADO, comando, etc., y después de cargar los resultados en una lista de objetos (mis clases de entidad), hago datagrid.DataSource = List; "
Otros consejos
Si usa un control ObjectDataSource como DataSourceID de GridView, entonces funciona de manera bastante fluida. Los controles ObjectDataSource tienen un par de parámetros donde puede indicarle los nombres de las propiedades PageIndex y MaxRows.