Final Solution (also works in SSRS 2012!)
Add the following script to the following file (on the SSRS server)
C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\js\ReportingServices.js
function pageLoad() { var element = document.getElementById("ctl31_ctl10"); if (element) { element.style.overflow = "visible"; } }
Note As azzlak noted, the name of the div is not always ctl31_ctl10 . For SQL 2012 try ctl32_ctl09 and for 2008 R2 try ctl31_ctl09 . If this solution does not work, look at the HTML from your browser to make sure that the script correctly changed the overflow:auto property to overflow:visible .
ReportViewer Management Solution
Insert this line of style in the .aspx page (or in the associated .css file, if any)
#reportViewer_ctl09 { overflow:visible !important; }
Cause
Chrome and Safari display overflow:auto differently with respect to IE.
SSRS HTML is QuirksMode HTML and depends on IE 5.5 errors. Non-IE browsers do not have IE quirksmode and therefore render HTML correctly
The HTML page generated by SSRS 2008 R2 reports contains a div that has an overflow:auto style and turns the report into an invisible report.
<div id="ctl31_ctl10" style="height:100%;width:100%;overflow:auto;position:relative;">
I can view reports in Chrome by manually changing overflow:auto to overflow:visible on the created web page using Chrome Dev tools ( F12 ).
I love Timβs decision , itβs easy and useful.
But there is still a problem: at any time, the user changes the parameters (my reports use parameters!) AJAX updates the div, overflow: the automatic tag is overwritten, and the script does not change it.
This technical detail explains what the problem is:
This is because on a page built with AJAX panels, only AJAX panels change their state without refreshing the entire page. Therefore, the OnLoad events applied to the <body> tag are fired only once: the first time the page loads. After that, changing any of the AJAX panels will no longer trigger these events.
Einarq suggested this solution :
Another option is to rename your function to pageLoad. Any functions with this name will be called automatically by asp.net ajax, if it exists on the page, also after each partial update. If you do this, you can also remove the onload attribute from the body tag
So I wrote an improved script, which is shown in the solution.