Compartir a través de


Configurar ReportViewer para representación asincrónica

Si desea configurar el control de servidor web ReportViewer para la representación asincrónica, deberá establecer los modos de representación y de procesamiento. El comportamiento de representación se especifica mediante la propiedad AsyncRendering del control y el comportamiento de procesamiento se especifica mediante la propiedad ProcessingMode. La combinación de estas dos propiedades define la representación de las páginas ASP.NET.

La tabla siguiente describe el comportamiento del control ReportViewer para los distintos modos de representación y procesamiento.

Valor de la propiedad Modo de procesamiento local (clase LocalReport) Modo de procesamiento remoto (clase ServerReport)

AsyncRendering = True

  • Utiliza IFRAME

  • Sin devolución 1

  • Procesamiento sincrónico

  • Utiliza IFRAME

  • Sin devolución 1

  • Procesamiento asincrónico

AsyncRendering = True

  • HTML en línea

  • Devolución de datos

  • Procesamiento sincrónico

  • HTML en línea

  • Devolución de datos

  • Procesamiento sincrónico

Si se establece AsyncRendering en True, se producirán devoluciones si se suscribe a eventos de navegación en el código, con la excepción del evento Drillthrough. Este evento producirá devoluciones independientemente de la suscripción de eventos. Si se establece la propiedad en False, las devoluciones se producirán tanto si se ha suscrito a eventos como si no lo ha hecho.

Modo asincrónico

Cuando se establece la propiedad AsyncRendering en True, el elemento ReportViewer representará el informe dentro de un objeto IFRAME en la página. El uso de un objeto IFRAME permite que el resto de la página se cargue sin que lo bloquee el control ReportViewer.

Los modos de procesamiento local y remoto utilizan un objeto IFRAME para representar el informe. Sin embargo, hay una diferencia en la forma en la que el control ReportViewer representa un indicador de progreso si se ha habilitado uno. Cuando un informe se procesa de forma local, el indicador de progreso para el informe no se puede representar hasta que haya finalizado el procesamiento. Cuando un informe se procesa de forma remota, el indicador de progreso, si está habilitado, se muestra mientras se procesa el informe en el servidor.

Consideraciones para el control de servidor web ReportViewer y XHTML

Si configura el control de servidor web ReportViewer para que se ejecute en modo asincrónico en una aplicación escrita en XHTML, deberá seguir pasos específicos para mostrar el control ReportViewer de manera adecuada. Si el control ReportViewer utiliza altura relativa (por ejemplo, si la altura está especificada como un porcentaje de espacio disponible), el control se contrae hasta una altura de cero (0) píxeles como resultado de la presentación de los marcos y las etiquetas DIV en las tablas contenedoras, en XHTML. Puede evitar este problema siguiendo uno de estos procedimientos:

  • Establezca explícitamente la altura del control ReportViewer en un valor real en lugar de un porcentaje.

  • Agregue el siguiente parámetro de estilo a la etiqueta de <encabezado>: <style>html,body,form {height:100%}</style>. Al forzar las etiquetas HTML, de cuerpo y formulario en una altura máxima, el marco utilizado en el control ReportViewer también crecerá hasta una altura máxima, haciéndolo visible en la página.

  • Quite el tipo de documento xhtml de la página.

Modo sincrónico

Cuando se establece la propiedad AsyncRendering en False el objeto ReportViewer representará el informe como HTML en línea dentro del resto de la página. Puesto que el HTML está en línea, el resto de la página se bloqueará mientras el informe se esté procesando y representando.

Nota

Si un informe contiene un mapa de documento y se está representando en modo sincrónico, el mapa no se mostrará.

Vea también

Referencia

Propiedades de ReportViewer
ReportViewer

Conceptos

Configuración de web.config para ReportViewer
Controles de servidor web ReportViewer y de Windows Forms
Configurar ReportViewer para el procesamiento local
Configurar ReportViewer para el procesamiento remoto