Pregunta

¿Alguno de ustedes encontró una manera de hacer que el Control de visor de informes (Web) de Microsoft funcione desde un Panel de actualización de Ajax?

¿Fue útil?

Solución

La única forma es crear un iframe con el informe allí iirc. Sin embargo, esta publicación aquí un hombre afirma que tiene una forma de solucionarlo. algun codigo aunque no lo he intentado ya que nunca he tenido la necesidad de mostrar ninguno de mis informes en un panel de actualización. Tiendo a mantener mis informes externos a cualquier aplicación ajax, por ejemplo, cuando se solicita un informe, abriré una nueva ventana con solo el informe. De todos modos, a mis usuarios les gusta más.

Otros consejos

solucioné este error utilizando

Paquete redistribuible de Microsoft Report Viewer 2010 desde:

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

luego cambia la configuración web como sigue

de

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

a

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

agrega esto al tiempo de ejecución

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

Nunca lo intenté realmente, pero estoy seguro de que el control no funcionaría de inmediato. Estoy bastante seguro de que necesita cargar un poco de Javascript adicional, porque agrega mucha complejidad, por lo que es posible que necesite cargarlos antes de actualizar el panel.

También puedo confirmar que el último lanzamiento (2010) mencionado en la publicación anterior corrige el problema. También elimina la necesidad de establecer explícitamente AsyncRendering = False: menciono esto porque otras sugerencias en la web dicen que establecer ese valor en esa propiedad

Aquí hay un ejemplo:

<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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top