Partager via


Configuration de ReportViewer pour un rendu asynchrone

Pour configurer le contrôle serveur Web ReportViewer pour le rendu asynchrone, vous devez définir les modes de rendu et de traitement.Le comportement du rendu est spécifié par la propriété AsyncRendering sur le contrôle et le comportement du traitement est spécifié par la propriété ProcessingMode.La combinaison de ces deux propriétés définit la manière dont vos pages ASP.NET sont rendues.

Le tableau suivant décrit le comportement du contrôle ReportViewer pour les différents modes de rendu et de traitement.

Définition de propriété

Mode de traitement local (classe LocalReport)

Mode de traitement distant (classe ServerReport)

AsyncRendering = True

  • Utilise IFRAME

  • Pas de publication 1

  • Traitement synchrone

  • Utilise IFRAME

  • Pas de publication 1

  • Traitement asynchrone

AsyncRendering = False

  • HTML inline

  • Publication

  • Traitement synchrone

  • HTML inline

  • Publication

  • Traitement synchrone

Lorsque la propriété AsyncRendering a la valeur True, des publications se produisent si vous vous abonnez à des événements de navigation dans votre code, à l'exception de l'événement Drillthrough.Cet événement est publié indépendamment de l'abonnement d'événement.Si la propriété a la valeur False, des publications se produisent que vous soyez ou non abonné à des événements.

Mode asynchrone

Lorsque la propriété AsyncRendering a la valeur True, l'objet ReportViewer retourne le rapport dans un IFRAME dans la page.En utilisant un IFRAME, le reste de la page peut se charger sans être bloquée par le contrôle ReportViewer.

Les modes de traitement local et distant utilisent un IFRAME pour le rendu du rapport.Toutefois, il existe une différence dans la manière dont ReportViewer génère le rendu d'un indicateur de progression s'il est activé.Lorsqu'un rapport est traité localement, le rendu de l'indicateur de progression du rapport est impossible tant que le traitement n'est pas complètement terminé.Lorsqu'un rapport est traité à distance, l'indicateur de progression, s'il est activé, est affiché pendant que le rapport est en cours de traitement sur le serveur.

ms252090.collapse_all(fr-fr,VS.140).gifAspects particuliers de XHTML et du contrôle de serveur Web ReportViewer

Si vous configurez le contrôle serveur Web ReportViewer en vue d'une exécution en mode asynchrone dans une application écrite en XHTML, vous devez suivre des étapes spécifiques pour afficher correctement le contrôle ReportViewer.Si le contrôle ReportViewer utilise une hauteur relative (par exemple, si la hauteur est spécifiée en tant que pourcentage d'espace disponible), le contrôle revient à une hauteur de 0 pixels en raison du mode de rendu des cadres et des balises DIV dans les tables conteneurs XHTML.Vous pouvez éviter ce problème en procédant de l'une des manières suivantes :

  • Attribuez une valeur réelle et non un pourcentage à la hauteur sur le contrôle ReportViewer.

  • Ajoutez le paramètre de style suivant à la balise <head> : <style>html,body,form {height:100%}</style>:En forçant les balises HTML, body et form à la hauteur maximale, le cadre utilisé dans le contrôle ReportViewer bénéficiera lui aussi d'une hauteur maximale, le rendant visible sur la page.

  • Supprimez le doctype xhtml de la page.

Mode synchrone

Lorsque la propriété AsyncRendering a la valeur False l'objet ReportViewer retourne le rapport sous forme de données HTML inline dans le reste de la page.Comme le contenu HTML est en ligne, le reste de la page est bloquée tant que le traitement et le rendu du rapport ne sont pas terminés.

Notes

Si un rapport contient un plan du document et qu'il fait l'objet d'un rendu en mode synchrone, le plan du document n'est pas affiché.

Voir aussi

Référence

ReportViewer

Propriétés ReportViewer

Concepts

Paramètres Web.config pour ReportViewer

Contrôles de serveur Web et Windows Forms de ReportViewer

Configuration de ReportViewer pour le traitement local

Configuration de ReportViewer pour un traitement distant