0

Page Init イベントで動的に生成された内部の TabContainer TabPanel 内に ReportViewer があります。OnActiveTabChanged イベントでレポートを読み込み、SelectedIndexChanged イベントでレポートを更新したいと考えています。

DropDownList の選択した値を変更しても、レポートは変更されません。

注: デバッグすると、SelectedIndexChanged 内の loadReport が適切に実行されます。

以下は私のコードの一部です。

    protected void DDL_SelectedIndexChanged(object sender, EventArgs e)
    {
        DropDownList DDL = (DropDownList)sender;

        ReportViewer rptViewer = (ReportViewer)DDL.Parent.FindControl("rptDateElectricity");

        if (rptViewer == null)
        {
            rptViewer = new ReportViewer();
            rptViewer.ID = "rpt" + "Date" + "Electricity"
            rptViewer.Width = Unit.Pixel(1100);
            loadReport(rptViewer, DDL, "Electricity", "Date");
            DDL.Parent.Controls.Add(rptViewer);
        }

    }


    protected void TCInner_OnActiveTabChanged(object sender, EventArgs e)
    {     
       ..............................
       ..............................

            ReportViewer rptViewer = (ReportViewer)DDL.Parent.FindControl("rptDateElectricity");

            if (rptViewer == null)
            {
                rptViewer = new ReportViewer();
                rptViewer.ID = "rpt" + "Date" + "Electricity"
                rptViewer.Width = Unit.Pixel(1100);
                loadReport(rptViewer, DDL, "Electricity", "Date");
                loadReport(rptViewer, DDL, monitoringObject, timePeriod);
            }              

        }            
    }

これはビューステートの問題だと思います。レポートビューア
に設定してみました。 私がしたとき、次のランタイムエラーが発生しました:EnableViewState false

「Microsoft JScript ランタイム エラー: Sys.WebForms.PageRequestManagerServerErrorException: Update メソッドは、Render の前に ID 'ReportArea' を持つ UpdatePanel でのみ呼び出すことができます。」誰でもこれに解決策を与えることができますか?

ありがとうございます。

4

1 に答える 1

0

レポートを自動更新するように指示したときに同じエラーが発生しました。これは、ReportViewer の JavaScript (Microsoft.Reporting.WebFormsClient._ReportAreaAsyncLoad) の一部をオーバーライドして以前に発生していたエラーを修正するために挿入した JavaScript が原因でした。 . 私のカスタム JavaScript は、追加の非同期ロード ポストバックをトリガーしていました。自動更新はそれと競合すると思います。

それがあなたの問題の原因であるかどうかはわかりません。

于 2012-08-02T20:56:45.157 に答える