【问题标题】:Updatepanel with Timer and ReportViewer gives JavaScript errors带有 Timer 和 ReportViewer 的 Updatepanel 给出 JavaScript 错误
【发布时间】:2013-11-12 19:27:35
【问题描述】:

在 C# 中使用 ASP.NET 我在带有计时器的 UpdatePanel 中有一个 ReportViewer。当页面加载时一切正常。当计时器滴答作响时,应该重新加载更新面板,我得到一个 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 或未定义,不是函数对象

在 Visual Studio 中,我还会弹出一个脚本块 [动态] 窗口,指出这是将要执行的下一条语句。

function onresize()
{
A5b7a957bb0e442fba0fd1b9d91cfd06bCreateFixedHeaders()
}

【问题讨论】:

    标签: c# asp.net timer updatepanel reportviewer


    【解决方案1】:

    ReportViewer 不能很好地与 UpdatePanel 配合使用。如果您需要独立于页面的其余部分刷新它 - 一种解决方案是将其作为单独的页面放入 IFRAME。

    这样您可以在计时器上重新加载 IFRAME(即使是纯 JavaScript 的 setInterval 也可以)。

    【讨论】:

      猜你喜欢
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多