miércoles, 24 de abril de 2013

Problema al mostrar muchas filas en un GridView (más de 1.000)

Buenas a tod@s

La semana pasada me encontraba desarrollando una aplicación en ASP.NET para mi empresa. En esta aplicación, tiene una serie de filtros que una vez aplicados muestran una tabla con los registros, que además posee una casilla para seleccionarlo. Evidentemente hablamos de ASP.NET por lo que para mostrar todos los elementos de la tabla utilice un control GridView con la primera columna con CheckBox para poder marcar o desmarcar los datos. Tras realizar un montón de pruebas dimos por válida la aplicación.

Cuando se lo mostramos a nuestro director el comenzó a hacer pruebas y encontró un error en el control GridView. Realizando un filtrado que devolvía más de 1.000 líneas la página queda congelada y si pulsas cualquier otro control no funciona. El problema es que no da un error como tal hasta que intentas recargar con F5 y entonces aparece este error "Operation is not valid due to the current state of the object".

Como indico anteriormente el problema viene dado por que son más de 1.000 líneas las que se muestran en nuestro GridView. Para solucionar este problema evidentemente podemos paginarlo a un máximo de 1.000 líneas por ejemplo o podemos ampliar el número de líneas que el GridView puede mostrar.

Esto último es muy sencillo simplemente hay que introducir un parámetro en el appconfig de la aplicación web, donde le indicaremos el máximo de líneas que mostrarán las colecciones.

Esta es la línea en cuestión:

<add key="aspnet:MaxHttpCollectionKeys" value="Número de Líneas" />

Como podéis observar algo sencillo a la vez que útil.

Este problema lo solucione gracias a Google (por mostrarme la información que buscaba) y al blog de  Max Martin Rojas (Martin Cox Rojas Blog) que escribio el siguiente Artículo (el cual te agradezco mucho)

Muy importante, si decides comentar o republicar parte de este articulo porque te ha sido útil, por favor cita la fuente y el autor del mismo (vamos cítame) y pon un enlace al artículo de mi blog

Muchas gracias por leerme.

Saludetes a tod@s

P.D. Podéis seguirme en Twitter @jberron y linkedin

No hay comentarios: