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:在渲染之前,只能在 ID 为“ReportArea”的 UpdatePanel 上调用 Update 方法。” 任何人都可以解决这个问题。

先谢谢了。

4

1 回答 1

0

当我将报告告诉 autoRefresh 时,我遇到了同样的错误,这是由我插入的一些 JavaScript 引起的,以覆盖 ReportViewer 的一些 JavaScript (Microsoft.Reporting.WebFormsClient._ReportAreaAsyncLoad) 以修复我之前遇到的错误. 我的自定义 javascript 触发了额外的异步加载回发。我猜自动刷新与此冲突。

不确定这是否是您的问题的原因。

于 2012-08-02T20:56:45.157 回答