Pregunta

Tengo algunas tablas en mi base de datos con unos 7K de filas y necesito realizar un informe en el sitio web( asp.net ) con la costumbre de formateo, pivote de la tabla de detalles.

¿Cuál es la mejor solución para esto, porque cuando me hacen por ejemplo repetidor con esta cantidad de datos es muy lenta.

Gracias por los consejos

¿Fue útil?

Solución

Si no desea paginación, probablemente necesitará algo de AJAX para buscar filas a medida que se desplaza, y posiblemente eliminar filas a medida que se desplazan fuera de la vista, si necesita conservar memoria.

Otros consejos

Apague el viewstate

A menos que usted lo necesita

Page.EnableViewState = false;

Dividir la tabla

Si usted no quiere ir abajo de la paginación de la ruta también se podría tratar de dividir un gran <table> en varios más pequeños <table>s.(En el caso de que el navegador sólo podía representar una tabla una vez que se ha visto al final </table>.No estoy seguro de si esto es cierto, pero definitivamente vale la pena un tiro)

Deshacerse de la basura

Asegúrese de que está utilizando css y no usar cosas como

<td width="40" valign="top"> 50 </td>
<td class="a"> 50 </td> <!-- better  -->
<td>50</td> <!-- best  -->
<!-- if you need to specify a width, you only need to do it in one row  -->

Recuerde crap * 7000 = alot of crap

Reducir el tamaño de la página en todos los costos

A veces el problema no es la representación de la página, pero es la descarga que causa el problema, a fin de comprobar que fuera.

Tablas anidadas realmente va a lastimar

Nuff dijo

Sugeriría usar paginación.

Considerando una fila típica como esta:

<tr><td>ID</td><td>Some data</td><td>More and more data</td></tr>

Cada fila tiene 66 caracteres, por lo que tener 7k filas sumaría casi 500k de datos. Y eso es mucho para una pantalla web.

Entonces, si realmente desea mostrar todo en una página, manténgalo al mínimo:

  • No desperdicies espacios
  • No use atributos a menos que sea completamente inevitable
  • No use class = " " si no tiene diferentes clases para diferentes filas (aplique la misma clase a todas las filas)

De todos modos, dependiendo de la computadora de destino + navegador, esto podría ser realmente lento si sus filas son más grandes.

¿No mencionas qué idioma estás usando, pero la mención de un repetidor sugiere ASP.Net? En mi experiencia, vincular datos a un DataGrid es más rápido en conjuntos de datos más grandes.

PERO, tengo que preguntarme por qué querrías mostrar tantos datos en una página web. Ningún usuario en su sano juicio se sentaría y se desplazaría por tantos datos y los encontraría útiles. Limite sus datos a los datos pertinentes que serán útiles para el usuario, generalmente filtrados a menos de 100 filas.

En mi opinión, un informe con esta cantidad de datos es inútil, sin importar el formato, pero si tiene que tenerlo todo para un informe impreso o similar, considere generar un documento PDF en el servidor.

Quizás desee probar una herramienta de informes personalizada para esa cantidad de datos. Mi empresa crea una herramienta llamada RSinteract (enchufe descarado). Que utiliza los servicios de informes de SQL Server.

Si solo quiere volcar los datos. Supongo que el navegador se bloquea mientras lo procesa o mientras se ejecuta la consulta. Si sabe cuál es su navegador de destino ... podría usar un & Quot; Más ... & Quot; enlace para obtener el siguiente conjunto de datos y tener un límite de 1000 filas. Sin embargo, esto afectaría la búsqueda Ctrl + F. Similar a la paginación, pero supongo que poner la responsabilidad en manos del usuario.

Si realmente está buscando el " el mejor " solución para una " aplicación web " ;, sugiero descaradamente que use Flash / Flex para renderizar de manera eficiente tantas filas. Si usar algo más allá del HTML básico no es una opción, entonces sugeriría buscar dinámicamente nuevas filas a medida que el usuario se desplaza como @mbeckish sugirió ...

Utilicé cuadrículas Dev Express para que un cliente se ocupara de los informes y les encanta (¡aunque hubiera preferido crear el mío!)

Ver http://demos.devexpress.com/ASPxGridViewDemos/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top