刷新报告内部动态创建的TabPanel

时间:2012-01-13 07:39:02

标签: asp.net viewstate dynamic-controls

我在内部TabContainer TabPanel中有一个ReportViewer,它是我在Page Init事件中动态生成的。 我在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上调用   渲染。“任何人都可以给出解决方案。

先谢谢。

1 个答案:

答案 0 :(得分:0)

当我将报告告诉autoRefresh时,我得到了同样的错误,这是由于我插入的一些javascript来覆盖一些ReportViewer的javascript(Microsoft.Reporting.WebFormsClient._ReportAreaAsyncLoad)以修复错误我会越来越早了。我的自定义JavaScript正在触发额外的异步加载回发。我猜autorefresh与此相冲突。

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