Konfigurieren von ReportViewer für asynchrones Rendering
Um das ReportViewer-Webserversteuerelement für asynchrones Rendering zu konfigurieren, müssen Sie die Rendering- und Verarbeitungsmodi festlegen. Das Renderingverhalten wird durch die AsyncRendering-Eigenschaft des Steuerelements definiert, das Verarbeitungsverhalten durch die ProcessingMode-Eigenschaft. Die Kombination dieser zwei Eigenschaften legt fest, wie ASP.NET-Seiten gerendert werden.
In der folgenden Tabelle wird das Verhalten des ReportViewer-Steuerelements für die unterschiedlichen Rendering- und Verarbeitungsmodi beschrieben.
Eigenschafteneinstellung |
Lokaler Verarbeitungsmodus (LocalReport-Klasse) |
Remoteverarbeitungsmodus (ServerReport-Klasse) |
---|---|---|
AsyncRendering = True |
|
|
AsyncRendering = False |
|
|
Wenn AsyncRendering auf True festgelegt ist, werden beim Abonnieren von Seitennavigationsereignissen (mit Ausnahme des Drillthroughereignisses) im Code Postbacks ausgeführt. Dieses Ereignis sendet unabhängig von Ereignisabonnement zurück. Wenn die Eigenschaft auf False festgelegt ist, werden Postbacks unabhängig davon ausgeführt, ob Ereignisse abonniert wurden oder nicht.
Asynchroner Modus
Wenn die AsyncRendering-Eigenschaft auf True festgelegt wurde, wird der Bericht vom ReportViewer innerhalb eines IFRAME auf der Seite gerendert. Mithilfe eines IFRAME kann der Rest der Seite geladen werden, ohne durch das ReportViewer-Steuerelement geblockt zu werden.
Sowohl der lokale als auch der Remoteverarbeitungsmodus verwenden einen IFRAME zum Rendern des Berichts. Es gibt jedoch einen Unterschied in der Art und Weise, wie der ReportViewer eine Statusanzeige rendert, wenn diese aktiviert ist. Wenn ein Bericht lokal verarbeitet wird, kann die Statusanzeige für den Bericht erst gerendert werden, wenn die Verarbeitung abgeschlossen ist. Wenn ein Bericht remote verarbeitet wird, wird die Statusanzeige (sofern aktiviert) angezeigt, während der Bericht auf dem Server verarbeitet wird.
Überlegungen zum Verwenden von XHTML und dem ReportViewer-Webserversteuerelement
Wenn Sie das ReportViewerWebserversteuerelement so konfigurieren, dass es im asynchronen Modus in einer XHTML-Anwendung ausgeführt wird, müssen Sie bestimmte Schritte ausführen, damit das ReportViewer-Steuerelement ordnungsgemäß angezeigt wird. Wenn das ReportViewer-Steuerelement eine relative Höhe verwendet (wenn die Höhe z. B. als Prozentsatz des verfügbaren Platzes angegeben wird), wird das Steuerelement aufgrund der Art und Weise, wie in Tabellen in XHTML Frames und DIV-Tags gerendert werden, auf eine Höhe von Null (0) Pixel reduziert. Sie können dies durch eine der folgenden Vorgänge vermeiden:
Legen Sie die Höhe des ReportViewer-Steuerelements explizit auf einen tatsächlichen Wert statt auf einen Prozentsatz fest.
Fügen Sie dem <head>-Tag die folgende Stileinstellung hinzu: <style>html,body,form {height:100%}</style>. Indem Sie für die HTML-, body- und form-Tags die maximale Höhe erzwingen, wird der im ReportViewer-Steuerelement verwendete Frame ebenfalls auf die maximale Höhe vergrößert. Dadurch wird er auf der Seite sichtbar.
Entfernen Sie die Dokumenttypdeklaration für XHTML von der Seite.
Synchroner Modus
Wenn Sie die AsyncRendering-Eigenschaft auf False festlegen, wird der Bericht vom ReportViewer im Rest der Seite als Inline-HTML-Code gerendert. Da es sich um Inline-HTML-Code handelt, wird der Rest der Seite blockiert, solange der Bericht verarbeitet und gerendert wird.
Hinweis
Enthält ein Bericht eine Dokumentstruktur und wird diese im synchronen Modus gerendert, wird die Dokumentstruktur nicht angezeigt.
Siehe auch
Referenz
Konzepte
Web.config-Einstellungen für ReportViewer
ReportViewer-Webserver und -Windows Forms-Steuerelemente