Skip to main content
.NET 6.0+

How to: Access the Report Preview Controls (ASP.NET Web Forms)

  • 3 minutes to read

This example demonstrates how to access the ASPxWebDocumentViewer control used to display reports in ASP.NET Web Forms XAF applications.

In this topic, it is assumed that you have an XAF application that uses the Reports V2 Module, and you have created one or more reports (see Reports V2 Module Overview).

When a user previews a report in an ASP.NET Web Forms XAF application, a Detail View is displayed in a popup or main window (depending on the ReportsAspNetModuleV2.DesignAndPreviewDisplayMode value). This Detail View contains a single View Item which creates a web control used to display a report. The particular View Item and control types depend on the ReportsAspNetModuleV2.ReportViewerType property value (HTML5 or ASP).

ReportViewerType Value View Item Type Control Type
HTML5 ReportWebViewerDetailItem ASPxWebDocumentViewer
ASP ReportViewerDetailItem ASPxWebDocumentViewer

To access this View Item, implement a Controller that targets the ReportViewer_DetailView_V2 Detail View (this Detail View identifier is specified via the ReportsAspNetModuleV2.ReportViewDetailViewWebName constant). Pass the View Item type as the generic parameter of the CompositeView.GetItems<T> method. The first element of the returned list will be the required View Item, because there is a single report viewer item in the View. Then, you can handle the View Item’s ViewItem.ControlCreated event and use the ReportViewer property to access the ASPxWebDocumentViewer control.

Example for an ASPxWebDocumentViewer (ReportViewerType is HTML5)

using DevExpress.ExpressApp;
using DevExpress.ExpressApp.ReportsV2.Web;
using DevExpress.ExpressApp.Web.Utils;
// ...
public class CustomizeReportViewerController : ViewController<DetailView> {
    public CustomizeReportViewerController() {
        TargetViewId = ReportsAspNetModuleV2.ReportViewDetailViewWebName;
    }
    protected override void OnActivated() {
        base.OnActivated();
        ReportWebViewerDetailItem reportViewItem = View.GetItems<ReportWebViewerDetailItem>()[0];
        reportViewItem.ControlCreated += (s, e) => {
            // Access client-side events of the ASPxWebDocumentViewer control
            ClientSideEventsHelper.AssignClientHandlerSafe(
                reportViewItem.ReportViewer,
                "Init",
                "function(s, e) { s.previewModel.reportPreview.zoom(0.7); }",
                nameof(CustomizeReportViewerController));
        };
    }
}

Example for an ASPxDocumentViewer (ReportViewerType is ASP)

using DevExpress.ExpressApp;
using DevExpress.ExpressApp.ReportsV2.Web;
// ...
public class CustomizeReportViewerController : ViewController<DetailView> {
    public CustomizeReportViewerController() {
        TargetViewId = ReportsAspNetModuleV2.ReportViewDetailViewWebName;
    }
    protected override void OnActivated() {
        base.OnActivated();
        ReportViewerDetailItem reportViewItem = View.GetItems<ReportViewerDetailItem>()[0];
        reportViewItem.ControlCreated += (s, e) => {
            // Access settings of the ASPxDocumentViewer control
            reportViewItem.ReportViewer.SettingsReportViewer.PageByPage = false;
        };
    }
}

Important

A reference to the DevExpress.XtraReports.v23.2.Web.dll assembly is required to compile these examples.