Recently while working on one of the projects, I ran into a problem with the ReportViewer control.
I was loading reports in ReportViewer control on clicking on button through ajax.
If you click on button twice, then it will following javascript exception.

Uncaught Sys.InvalidOperationException: Sys.InvalidOperationException: The report or page is being updated. Please wait for the current action to complete.

Uncaught Sys Javascript Exception in ASP.NET ReportViewer Control
Uncaught Sys Javascript Exception in ASP.NET ReportViewer Control

Then I just went with the approach to disable button once clicked and enable it after processing is complete.

So now, whenever someone clicks on button, button gets disabled and gets enabled on complete of loading of reports. But after report is visible it was starting to fetch contents and load data on screen with showing loading progress bar.

Now if someone clicks on button to load report again, then it was again throwing Uncaught Sys Javascript Exception in ScriptResource.axd file.

After analysis I was able to fix this issue by just setting EnablePartialRendering property of the ReportViewer control to false.

Its the property of the ReportViewer which tells whether to load report completely and then only show it to user and fire load event or just to load report initially and then load data asynchronously.


Disadvantage : So with above approach only disadvantage is that – loading icon is not displayed to the user.

Have you ever ran into this kind of problem ? Do you know any other solution to this problem ?