asp.net gridview viewstate

ASP.net GridView''s ViewStates



(3)

Estoy usando Gridview para guardar registros de que el usuario puede hacer clic en la casilla de cada registro para indicar que quiere guardar ese registro (después de editar los datos) y el usuario puede seleccionar tantos registros como desee y guardarlos todos En seguida.

En el código subyacente, haré un bucle en la vista de cuadrícula y buscaré la casilla de verificación para guardar el registro. Si deshabilito el estado de vista de Gridview. No puedo buclearlo, pero si activé el estado de vista de la rejilla, entonces el estado de la vista de rejilla puede ir tan alto como 1mb o más.

¿Cuál será la mejor manera de reducir ViewState en este control de Girdview o mi enfoque es incorrecto?


Estoy de acuerdo con Alex. También podría presentar una tabla temporal para contener los datos. Utilicé este escenario en un proyecto y funciona bien. También podría usar el almacenamiento en caché, pero nuevamente eso está cargando el servidor web (a menos que tenga algún tipo de almacenamiento en caché distribuido).


Si está abierto a la idea, es posible que desee considerar la implementación de paginación personalizada para reducir el número de registros devueltos. Tal vez comience con la paginación predeterminada, pero eso devuelve todos los registros. Si desea un mejor rendimiento, la paginación personalizada es el camino a seguir.

Un poco de material útil:

  1. Navegación eficiente a través de grandes cantidades de datos

  2. GridView ObjectDataSource LINQ Paginación y clasificación

  3. Mejore el rendimiento de GridView mediante la delegación de paginación a SQL Server


Si no puede reducir el tamaño de su ViewState, puede probar con una solución alternativa. Puede almacenar su viewstate en el servidor. Esta publicación de blog muestra cómo implementar esto:

Reduciendo el tamaño de página almacenando ViewState en el servidor

Implementé algo similar a esto en una página que tenía un gran estado visual y funcionó de maravilla. Intentaré optimizar el viewstate antes de pasar a algo así, ya que está creando un poco de sobrecarga.

Creo que utilicé este artículo (ha pasado un tiempo) y tuve que modificarlo para SQL, ya que este usa el sistema de archivos: Persisting View State para File System