【问题标题】:ReportViewer Control and Ajax UpdatePanelReportViewer 控件和 Ajax UpdatePanel
【发布时间】:2008-10-01 19:47:08
【问题描述】:

你们中是否有人找到了让 Microsoft Report Viewer Control (Web) 在 Ajax UpdatePanel 中工作的方法?

【问题讨论】:

标签: asp.net ajax updatepanel reportviewer


【解决方案1】:

真正的唯一方法是在 iirc 中创建一个带有报告的 iframe。然而,this post here 一个人声称他有办法用一些代码来修复它。尽管我什至没有尝试过,因为我从来不需要在更新面板中显示我的任何报告。我倾向于将我的报告保留在任何 ajax 应用程序之外,例如,当请求报告时,我将打开一个仅包含报告的新窗口。无论如何,我的用户更喜欢这样。

【讨论】:

    【解决方案2】:

    我通过使用修复了这个错误

    Microsoft Report Viewer 2010 可再发行包 来自:

    http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=a941c6b2-64dd-4d03-9ca7-4017a0d164fd

    然后按以下方式更改网络配置

    来自

            <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>
    

    【讨论】:

    • 对于那些看到这个解决方案的人,只知道你需要使用 SQL Server 2008 或更高版本,否则 Report Viewer 2010 将无法工作。
    【解决方案3】:

    从未真正尝试过,但我确信控制不会立即起作用。我很确定它需要加载一些额外的 Javascript,因为它增加了很多复杂性,所以您可能需要在更新面板之前加载它们。

    【讨论】:

      【解决方案4】:

      我还可以确认,上一篇文章中提到的最新版本 (2010) 已更正问题。它还消除了显式设置 AsyncRendering=False 的需要:我提到这一点是因为网络上的其他建议说要在该属性上设置该值

      【讨论】:

        【解决方案5】:

        这是一个例子:

        <asp:Button ID="Button1" runat="server" OnClick="ViewReport_Clicked" Text="View Report" SkinID="ButtonA" />
        <asp:UpdatePanel ID="TFD_UP" runat="server">
            <ContentTemplate>
                <rsweb:ReportViewer ID="ReportViewer1" runat="server" SizeToReportContent="True"
                    Height="202px" Width="935px" Font-Names="Verdana" Font-Size="8pt" InteractiveDeviceInfos="(Collection)"
                    WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Visible="false">
                    <LocalReport ReportPath="Reports\Report4.rdlc">
                        <DataSources>
                            <rsweb:ReportDataSource DataSourceId="SqlDataSourceArchiSpecs" Name="Proc_TechFilesDownloadsDataSetParent" />
                        </DataSources>
                    </LocalReport>
                </rsweb:ReportViewer>
                <asp:SqlDataSource ID="SqlDataSourceArchiSpecs" runat="server" ConnectionString="<%$ ConnectionStrings:ArchiSpecsDBConnectionString %>"
                    SelectCommand="PROC_TECHNICALFILES_DOWNLOAD_DETAILS" SelectCommandType="StoredProcedure">
                    <SelectParameters>
                        <asp:Parameter Name="supId" Type="Int32" />
                        <asp:Parameter Name="startDate" Type="DateTime" />
                        <asp:Parameter Name="endDate" Type="DateTime" />
                    </SelectParameters>
                </asp:SqlDataSource>
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
            </Triggers>
        </asp:UpdatePanel>
        

        【讨论】:

          猜你喜欢
          • 2011-03-25
          • 2011-07-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多