Hasta aquí podemos decir que la teoría es muy bonita y todo funciona muy bien, siempre que no queramos hacer nada que se salga un poco de lo normal... Siempre que consideremos que enlazar un gridview con un dataset o con una lista enlazada creada por nosotros se salga un poco de lo normal...
Bueno, el caso es que, cuando trabajamos con un data source de los que nos proporciona el framework de ASP.NET, como por ejemplo un ObjectDataSource, no encontramos ningún problema con la paginación, ya que simplemente tenemos que configurar un par de opciones (que el gridview permita paginación y el número de entradas que queremos que se muestren por cada página) para que todo se ajuste a lo que queremos.
Pero... y si no enlazamos con uno de los data sources que proporciona ASP.NET?? Pues bien, si, por ejemplo enlazamos el gridview con una lista enlazada o un dataset creado por nosotros, al activar la paginación nos encontraremos con un pequeño problema. Y es que, al hacer click sobre una página diferente a la que nos encontramos, obtendremos un error. Algo así:
El GridView "nombre_del_GridView" ha generado el evento PageIndexChanging, que no estaba controlado.¿Y esto por qué? Pues bien, sencillamente porque a paginacion del control GridView viene asociado o esta intrinsecamente asociado al control proveedor de datos que se lo esta vinculando el datasource debe soportar ICollection. Aquí tenéis la explicación sobre la paginación del GridView.
Bueno, y entonces, ¿cómo lo solucionamos? Pues bien sencillo. Lo único que hay que hacer es incluir en nuestro código un método asociado al evento PageIndexChanging. De esta forma ya no nos aparecerá el error. Para que la funcionalidad sea la que queremos, pues sólo tenemos que incluir un código como este:
protected void GridView2_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView2.PageIndex = e.NewPageIndex;
Listlista = obtenerLista;
GridView2.DataSource = llista;
GridView2.DataBind();
}
NOTA: en el ejemplo véis que he incluido un método para obtener la lista que luego se enlazará al GridView. Aquí hay que obtener el datasource que queramos para el GridView.
Y ya está! Así de sencillo.
Espero que os haya servido de algo.
Un saludo!
19 comentarios:
ageague el codigo del evento escribiendolo pero no me funciona me sigue dando el mismo error
No me funciona, copie el codigo del evento por que no sabia como sacarlo y cambie la fuente de datos pero me sigue dando el error
no funciona el codigo, aun asi me sigue dando el mismo error, el evento no es reconocido al darle click
Justo lo que necesitaba,
gracias.
karim
gracias!!!
lo necesitaba en vb
pero simplemente lo modifique
y funciono perfecto
gracias por compartir este codigo
me ayudo bastante
A que te refieres con obtener lista, no comprendo lo que tratas de decir
GRACIAS POR EL CÒDIGO, ME FUE DE MUCHA AYUDA...
Funciono perfecto, muchas gracias!!!
Simple, concreto y funcional, no siempre se encuentra algo asi, gracias de nuevo y saludos desde Uruguay!!!
YO NECESITO EL CODIGO PARA PODER CREAR PAGINACION EN UN GRIDVIEW, SOLO QUE NO UTILIZO UN SQLDATASOURCE UTILIZO CON CONECTOR ODBC PARA LLENAR EL GRIDVIEW MUCHAS GRACIAS POR SU AYUDA
Anduvo PERFECTAMENTE!! me saco de un gran problema! y a los que no les anda sean felices =)
Funciona perfecto!. Gracias.
Muchas gracias me funciona de maravilla. Visca el Barca! XD
Gracias, me srivio mucho
Donde puedo obtener el ejemplo, para ver la funcion que crea para utilizarla en lo de la paginacion del gridview..!
bueno, pero esta cargando toda la lista... como pargar parcialmente, quiero decir lo que se muestra en la pagina y aun decirle que faltan n paginas por mostrar
sencillo pero eficaz,slds.
Excelente ejemplo muy bueno gracias!!
Publicar un comentario