带有Timer和ReportViewer的Updatepanel会出现JavaScript错误

时间:2013-11-12 19:27:36

标签: c# asp.net timer updatepanel reportviewer

在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()
}

1 个答案:

答案 0 :(得分:1)

ReportViewer与UpdatePanel不兼容。如果您需要从页面的其余部分独立刷新它 - 一个解决方案是将它作为单独的页面放入IFRAME。

这样你可以在计时器上重新加载IFRAME(即使是普通的JavaScript setInterval也会这样做。)