ReportViewer不断刷新

时间:2013-01-24 13:01:18

标签: visual-studio-2010 visual-studio-2008 reportviewer report-viewer2010 reportviewer2008

我有一个非常奇怪的情况。我在ASP.NET中使用ReportViewer控件在我的aspx页面中显示报告。当我使用VS2008构建我的网站时,这很好用。但是当我在VS2010中向页面添加Report Viewer控件时出错...

VS2010中ReportViewer的问题在于它不断刷新我的报告。当我查看从该页面发送的网络流量时,我可以清楚地看到ReportViewer不断发送新请求以获取报告。我不知道为什么它会像这样,只在VS2010 ...

但是当我尝试在报告中添加参数时,这只会发生。

这就是我的代码:

VS2008

<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana"
    Font-Size="8pt" Height="642px" ProcessingMode="Remote" Width="896px">
    <ServerReport ReportPath="http://server.com/Product/Dashboards/test.rdl" 
        ReportServerUrl="http://server.com/ReportServer" />
</rsweb:ReportViewer>

VS2010

<rsweb:ReportViewer ID="ReportViewer1" runat="server" 
ProcessingMode="Remote" Width="948px" Font-Names="Verdana" Font-Size="8pt" 
     WaitMessageFont-Names="Verdana" 
    WaitMessageFont-Size="14pt">
    <ServerReport ReportPath="http://server.com/Product/Dashboards/test.rdl" 
        ReportServerUrl="http://server.com/ReportServer" />
</rsweb:ReportViewer>

背后的代码

对于VS2008VS2010,我在Page_Load中都有以下代码:

ReportParameter[] reportParameters = new ReportParameter[1];
reportParameters[0] = new ReportParameter("year", "2012", true);
ReportViewer1.ServerReport.SetParameters(reportParameters);
ReportViewer1.ServerReport.Refresh();

为什么我在添加参数时遇到VS2010的问题,即:为什么它会不断刷新我的报告?为什么这在VS2008中完美运行?

2 个答案:

答案 0 :(得分:1)

这可能是您遇到的问题:Reports Never Stop Loading With VS 2010

显然你在调用SetParameters之前需要检查IsPostBack。

答案 1 :(得分:0)

我知道这是一个旧的,但对于那些仍在寻找的人,我在ReportViewer2012中遇到了这个问题,并通过检查后面的代码中的帖子来解决它。

protected void Page_Load(object sender, EventArgs e)
{
  if (!IsPostBack)
   {
     // Your code behind code here
   }
}

这也可能有所帮助:https://social.msdn.microsoft.com/Forums/en-US/deae558c-977f-484e-86ba-50cfd376c181/reportviewer-constantly-refreshing?forum=vsreportcontrols