I have a report page that uses the Microsoft.Reporting.WebForms.ReportViewer component to render Report Server (SSRS) reports asynchronously. At the moment if an error occurs a message is displayed inside the ReportViewer control.
I want to add custom error handling logic so that the user gets a friendly message. How can I achieve this and still run the viewer in Async mode, rendering the reports on the SSRS server?
Listening to the ReportViewer.HandleError event won't work as the page postback has already completed.
Best Answer
After inspecting the ReportViewer JavaScript, I came up with the following solution. It's prone to breaking things if Microsoft changes this particular method. The following code would be added to the header of the page to make sure it runs after the ReportViewer javascript is loaded, but before an instance of the RSClientController is created.
The original code from the Microsoft ReportViewer script file (inside the Microsoft.ReportViewer.WebForms, 8.0.0.0, .Net Framework 3.5 SP1) is: