我在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>