1

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

ReportViewer在 VS2010 中遇到的问题是它不断刷新我的报告。当我查看从该页面发送的网络流量时,我可以清楚地看到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 中工作得非常好?

4

2 回答 2

1

This may be the problem you're encountering: Reports Never Stop Loading With VS 2010

Apparently you need a check for IsPostBack before calling SetParameters.

于 2013-10-11T15:27:45.987 回答
1

我知道这是一个旧问题,但对于那些仍在寻找的人,我在 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

于 2015-07-15T15:37:56.360 回答