0

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 ランタイム エラー: プロパティ 'A5b7a957bb0e442fba0fd1b9d91cfd06bCreateFixedHeaders' の値は、関数オブジェクトではなく、null または未定義です

Visual Studio では、これが次に実行されるステートメントであることを示すスクリプト ブロック [動的] ウィンドウも表示されます。

function onresize()
{
A5b7a957bb0e442fba0fd1b9d91cfd06bCreateFixedHeaders()
}
4

1 に答える 1

1

ReportViewer は UpdatePanel とうまく連携しません。ページの残りの部分とは別に更新する必要がある場合、1 つの解決策は、それを別のページとして IFRAME に配置することです。

このようにして、タイマーで IFRAME をリロードできます (プレーンな JavaScript でも可能setIntervalです)。

于 2013-11-12T21:33:32.227 に答える