我有一个非常奇怪的情况。我在ASP.NET中使用ReportViewer
控件在我的aspx
页面中显示报告。当我使用VS2008构建我的网站时,这很好用。但是当我在VS2010中向页面添加Report Viewer
控件时出错...
VS2010中ReportViewer
的问题在于它不断刷新我的报告。当我查看从该页面发送的网络流量时,我可以清楚地看到ReportViewer
不断发送新请求以获取报告。我不知道为什么它会像这样,只在VS2010 ...
但是当我尝试在报告中添加参数时,这只会发生。
这就是我的代码:
<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>
<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>
对于VS2008
和VS2010
,我在Page_Load
中都有以下代码:
ReportParameter[] reportParameters = new ReportParameter[1];
reportParameters[0] = new ReportParameter("year", "2012", true);
ReportViewer1.ServerReport.SetParameters(reportParameters);
ReportViewer1.ServerReport.Refresh();
为什么我在添加参数时遇到VS2010的问题,即:为什么它会不断刷新我的报告?为什么这在VS2008中完美运行?
答案 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
}
}