ReportViewer控件和Ajax UpdatePanel
时间:2020-03-06 14:59:41 来源:igfitidea点击:
你们中有没有人找到从Ajax UpdatePanel内部运行Microsoft Report Viewer控件(Web)的方法?
解决方案
从未尝试过,但是我敢肯定控制不会马上起作用。我很确定它需要加载一些额外的Javascript,因为它增加了太多的复杂性,因此我们可能需要在更新面板之前先加载这些Javascript。
真正的唯一方法是使用iirc创建带有报表的iframe。但是,这里的一个人声称他有办法用一些代码来修复它。尽管我什至没有尝试过,因为我从来不需要在更新面板中显示任何报告。我倾向于将报告保留在任何Ajax应用程序之外,例如,当请求报告时,我将仅打开报告并打开一个新窗口。无论如何,我的用户都喜欢那样。
我通过使用修复了该错误
Microsoft Report Viewer 2010可再发行组件包
从 :
http://www.microsoft.com/downloads/details.aspx?displaylang=zh_CN&FamilyID=a941c6b2-64dd-4d03-9ca7-4017a0d164fd
然后如下更改Web配置
从
<assemblies> <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> <add assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> <add assembly="Microsoft.ReportViewer.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> </assemblies> <assemblies> <add assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> <add assembly="Microsoft.ReportViewer.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> </assemblies>
到
<assemblies> <add assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <add assembly="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </assemblies>
将此添加到运行时
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Microsoft.ReportViewer.WebForms" publicKeyToken="b03f5f7f11d50a3a"/> <bindingRedirect oldVersion="9.0.0.0-9.1.0.0" newVersion="10.0.0.0"/> </dependentAssembly> </assemblyBinding>
我还可以确认以前的文章中提到的最新版本(2010)可以纠正问题。它还消除了显式设置AsyncRendering = False的需要:之所以提到这一点,是因为网络上的其他建议都说要在该属性上设置该值。