![]() |
Paginación datagrid
Hola de nuevo, jeje la verdad es que el foro me está cundiendo :p.
Ahí va la pregunta: Tengo un datagrid paginado, muestra correctamente el contenido pero cuando selecciono otra página me muestra la tabla sin contenido y en el pie está seleccionada el número de página que había pulsado. En el evento PageIndexChanged tengo el siguiente código:
Y la carga inicial del datagrid se hace mediante el siguiente código, donde la variable CatalogoReader : BdpDataReader; está declarada de forma global:
Espero vuestras respuestas porque realmente llevo tiempo con esto. Gracias anticipadas :o |
El codigo que llena la variable se ejecuta cada vez que cargas la pagina? Lo tienes en el page_load ?
Me parece que en el segundo bind, el datasource no tiene datos. |
Si lo pongo en el load ma carga los 10 primeros elementos de nuevo y si no le indico que solo se me cargue una vez es cuando me la deja en blanco.
|
Tienes que colocar el codigo que llena el datasource en un método aparte, y en el evento pageindexchanged en el que le estas asignando el nuevo numero de pagina, deberás llamar el metodo que llena el datasource antes de hacer databind, pues cada vez que hagas un databind el datasource debe tener datos, siempre.
Como es una ejecución desconectada, entre cada llamada el datasource no mantiene los registros, salvo que lo metas en alguna variable de sesión, aplicacion, cache o en el viewstate de la pagina, y según explicas tu caso, no creo que sea necesario hacer nada de eso. Suerte! |
Muchas gracias por tu atención, aqui te muestro el contenido del codigo con las modificaciones que me has dicho:
Procedimiento PageIndexChange
Procedimiento CambiarPaginaAux, donde las variables Trans y CatalogoReader son globales. Haciendo esto, me señala el número de la página pulsada como si estuviera situado en él, pero el contenido es el de la página 1. Gracias :o |
- Pon el databind como parte del metodo CambiarPaginaAux
- cambia el orden de ejecucion, colocando la llamada al metodo justo despues de cambiar el indice de la pagina - verifica que los registros entre paginas deben ser diferentes en la tabla Código:
DataGrid1.CurrentPageIndex :=e.NewPageIndex; |
Hola de nuevo, he hecho las modificaciones que me has dicho pero me sigue ocurriendo lo mismo, mira:
Y el de Cambio de pagina
Las dos variables las sigo teniendo como globales :confused: |
La franja horaria es GMT +2. Ahora son las 08:32:53. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi