我在IIS 7下运行的SQL Server Reporting Services R2报告上收到了javascript错误。报告与IIS在同一台服务器上运行。报告查看器控件嵌入到MVC 1.0页面上的iFrame中,并转换为经典的asp.net页面(尽管在我自己运行报告页面时发生了相同的问题)。使用日期参数时Reporting Services 2008 R2 javascript错误
我没有在报告中添加额外的自定义JavaScript。也就是说,页面上只有与报表查看器控件一起提供的库存JavaScript。
在Firefox 4下,当我使用日期参数运行报表时,报表运行OK并显示默认日期。如果我改变他们,我得到这些错误:
frames.ReportViewerTouchSession0.location is null
document.getElementById("ReportViewer_ctl00").ParametersController is undefined
报告没有刷新,无论是自动回发,或者如果我手动触发通过“查看报告”按钮之一。
IE8我得到这个:
'document.getElementById(...).ParametersController' is null or not an object
IE8的调试器中断在ViewState的一些随机的位置。
IE9的错误是不同的(当你点击的日期选择器):
Unable to get value of the property 'ToggleVisibility': object is null or undefined
Unable to get value of the property 'HideActiveDropDown': object is null or undefined
此外,调试器不能给我任何的源代码一个有用的行号。
没有任何404网络错误可能表明脚本未被加载。
更改True
和False
之间的AsyncRendering
属性没有任何影响。
我发现你需要在web.config as detailed here中移动web hander。其中解决了我遇到的其他一些问题,但这个问题依然存在。
我正在用我的头发撕掉!
为了完整起见,这里是页面的asp.net代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Report.aspx.cs" Inherits="Tenders.Web.Report" %>
<%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server"></head>
<body>
<form id="form1" action="/Report.aspx" runat="server">
<asp:ScriptManager ID="ScriptManager" runat="server" EnablePartialRendering="true" ScriptMode="Release">
</asp:ScriptManager>
<asp:UpdatePanel ID="ReportViewerUP" runat="server">
<ContentTemplate>
<rsweb:ReportViewer ID="ReportViewer" runat="server" Width="100%" ProcessingMode="Local"
InteractivityPostBackMode="AlwaysAsynchronous" AsyncRendering="true">
</rsweb:ReportViewer>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>