ReportViewer 2010在异步回发时没有刷新

时间:2011-06-16 08:05:40

标签: c# asp.net visual-studio-2010 asynchronous reportviewer

好的,我一直在寻找并尝试六个小时的不同想法,但我还没有找到解决方案。

我正在使用Visual Studio 2010,C#,ASP.Net 4.0和ReportViewer 10。

我有一个javascript函数,它使用新值刷新报表参数进行异步调用,然后重新加载报表。一切都按预期执行,但报告不呈现新数据。

如果我从按钮执行正常的回发,那么它可以正常工作,但只要它是异步回发就不行。我已经读过一些东西,渲染可能是在页面生命周期等的后期,但这让我无处可去。这是我用来设置参数的代码。

代码背后:

//Tried with and without this line and it makes no differed
ReportViewer1.Reset();
ReportViewer1.ProcessingMode = ProcessingMode.Remote;

List<ReportParameter> rParams = new List<ReportParameter>();
rParams.Add(new ReportParameter("UserID", SelectedUserID.ToString(), false));
rParams.Add(new ReportParameter("PayrollSalesMonthID", "13", false));
ReportViewer1.ServerReport.ReportServerUrl = new Uri("...");
ReportViewer1.ServerReport.ReportPath = "...";

ReportViewer1.ServerReport.SetParameters(rParams);
//Tried with and without this line and it makes no differed
ReportViewer1.ServerReport.Refresh();

标记:

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<rsweb:ReportViewer ID="ReportViewer1" runat="server" BorderStyle="None" Width="100%" Height="98%" SizeToReportContent="true" AsyncRendering="true" />
</rsweb:ReportViewer>

更新

我的页面上有一个ASP脚本管理器和一个EXT.Net资源管理器,如下所示,这导致了错误。一旦我删除资源管理器它工作正常,但我确实需要它在此页面上的其他功能。将报告放在iFrame中也是不可能的。

<ext:ResourceManager ID="ResourceManager1" runat="server" Locale="en-GB" />
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>

关于如何让这两位经理很好地发挥作用的任何想法?

2 个答案:

答案 0 :(得分:1)

您是否已将scriptmanager.EnablePartialRendering标记设为true

答案 1 :(得分:1)

尝试将ReportViewer放在UpdatePanel中,或调用ReportViewer1.Update方法(我还没试过),Update方法是从Ext.Net到刷新客户端控件状态的所有控件的扩展方法。 / p>

我希望它适合你。 问候, PaúlSomarriba