在C#中使用ASP.NET我在带有Timer的UpdatePanel中有一个ReportViewer。当页面加载一切正常。当计时器滴答时,应该重新加载updatepanel我得到一个javascript错误。当我在UpdatePanel之外使用ReportViewer时,它会加载并打勾,没有错误。我是否遗漏了需要做的事情,以使报告在更新面板内工作。
与更新面板外部的ReportViewer一起使用的代码。
<rsweb:ReportViewer ID="ReportViewerOpenOrders" runat="server"
AsyncRendering="False" BorderColor="Black" BorderStyle="Solid"
BorderWidth="1px" Font-Names="Verdana" Font-Size="8pt" Height="150px"
InteractiveDeviceInfos="(Collection)" ProcessingMode="Remote"
ShowBackButton="False" ShowCredentialPrompts="False"
ShowDocumentMapButton="False" ShowExportControls="False"
ShowFindControls="False" ShowPageNavigationControls="False"
ShowParameterPrompts="False" ShowPrintButton="False"
ShowPromptAreaButton="False" ShowRefreshButton="False" ShowToolBar="False"
ShowWaitControlCancelLink="False" ShowZoomControl="False"
SizeToReportContent="True" Visible="False" WaitMessageFont-Names="Verdana"
WaitMessageFont-Size="14pt" Width="196px">
<ServerReport ReportPath="/path/report"
ReportServerUrl="http://server/reportserver" />
</rsweb:ReportViewer>
<br />
<asp:UpdatePanel ID="UpdatePanel3" runat="server">
<ContentTemplate>
<asp:Timer ID="TimerRefreshDashboards" runat="server" Interval="15000">
</asp:Timer>
</ContentTemplate>
</asp:UpdatePanel>
<br />
提供javascript错误的代码。
<asp:UpdatePanel ID="UpdatePanel3" runat="server">
<ContentTemplate>
<asp:Timer ID="TimerRefreshDashboards" runat="server" Interval="15000">
</asp:Timer>
<rsweb:ReportViewer ID="ReportViewerOpenOrders" runat="server"
AsyncRendering="False" BorderColor="Black" BorderStyle="Solid"
BorderWidth="1px" Font-Names="Verdana" Font-Size="8pt" Height="150px"
InteractiveDeviceInfos="(Collection)" ProcessingMode="Remote"
ShowBackButton="False" ShowCredentialPrompts="False"
ShowDocumentMapButton="False" ShowExportControls="False"
ShowFindControls="False" ShowPageNavigationControls="False"
ShowParameterPrompts="False" ShowPrintButton="False"
ShowPromptAreaButton="False" ShowRefreshButton="False" ShowToolBar="False"
ShowWaitControlCancelLink="False" ShowZoomControl="False"
SizeToReportContent="True" Visible="False" WaitMessageFont-Names="Verdana"
WaitMessageFont-Size="14pt" Width="196px">
<ServerReport ReportPath="/path/report"
ReportServerUrl="http://server/reportserver" />
</rsweb:ReportViewer>
</ContentTemplate>
</asp:UpdatePanel>
javascript错误
JavaScript运行时错误:属性'A5b7a957bb0e442fba0fd1b9d91cfd06bCreateFixedHeaders'的值为null或未定义,而不是Function对象
在Visual Studio中,我还会弹出一个脚本块[dynamic]窗口,说明这是将要执行的下一个语句。
function onresize()
{
A5b7a957bb0e442fba0fd1b9d91cfd06bCreateFixedHeaders()
}
答案 0 :(得分:1)
ReportViewer与UpdatePanel不兼容。如果您需要从页面的其余部分独立刷新它 - 一个解决方案是将它作为单独的页面放入IFRAME。
这样你可以在计时器上重新加载IFRAME(即使是普通的JavaScript setInterval
也会这样做。)