Configurar ReportViewer para presentación asincrónica
Si desea configurar el control de servidor web ReportViewer para la presentación asincrónica, deberá establecer los modos de presentación y de procesamiento. El comportamiento de presentació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 presentación de las páginas ASP.NET.
La tabla siguiente describe el comportamiento del control ReportViewer para los distintos modos de presentación y procesamiento.
Valor de propiedad |
Modo de procesamiento local (clase LocalReport) |
Modo de procesamiento remoto (clase ServerReport) |
---|---|---|
AsyncRendering = True |
|
|
AsyncRendering = False |
|
|
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 presentará 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 presentar el informe. Sin embargo, hay una diferencia en la forma en la que el control ReportViewer presenta 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 presentar 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 la siguiente configuración de estilo a la etiqueta <head>: <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 presentará el informe como HTML alineado dentro del resto de la página. Puesto que el HTML está alineado, el resto de la página se bloqueará mientras el informe se esté procesando y presentando.
Nota |
---|
Si un informe contiene un mapa de documento y se está presentando en modo sincrónico, el mapa no se mostrará. |
Vea también
Referencia
Conceptos
Configuración de web.config para ReportViewer
Controles de servidor web ReportViewer y de Windows Forms