原文:SSRS (SQL Server Report Service) 在IE9, IE10下显示不全的解决办法
在做项目的过程中遇到SSRS与IE9, IE10不兼容的情况,具体表现为报表页面在IE9 和 IE10下面只显示三分之一,靠左显示,下方有滚动条,右三分之二为空白。查看源代码后发现,上面一个<tr>里只有一个<td>,并colspan=3, 下面报表内容区域的<tr>有三个<td>但前两个是hidden的。最初是想把表格结构调整下,去掉前面hidden的两个<td>,后来发现太麻烦不说,还改变了微软原来的表单内容。就在网上搜索解决方案,微软自己说是让客户使用兼容模式,这个问题确实在IE8下面是没有的,可是SharePoint
2013 运行在IE10的IE8模式下面和IE9的IE8模式下面又会导致大量的兼容性问题,果断放弃。后来在 http://answers.microsoft.com/en-us/ie/forum/ie10-windows_7/ie-10-ssrs-report-viewer-issue-after-kb2888505/1e82a8b9-dea6-4351-90d3-7f4f47c4fb2a
找到解决方案。整理如下:
1. 打开 SSRS的安装目录:c:\Program Files\Microsoft SQL Server\MSR11.MSSQLServer\Reporting Services\ReportServer\Pages 下面找到ReportViewer.aspx
2. 先将其备份一份(Copy一份到原目录即可),然后用记事本打开,在文件最后一个</scripte>标签前加入如下代码:
try {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function() {
document.getElementById("ReportViewerControl_fixedTable").style.tableLayout = '';
});
} catch(e) {
//ignore me alert("error");
}
3. 保存ReportViewer.aspx。
4. 清空客户端浏览器缓存,然后重新打开报表,可以正常显示了。