Pergunta

Alguém de vocês já encontrar uma maneira de obter o Relatório de Controle Visualizador Microsoft (Web) para o trabalho de dentro de um Ajax UpdatePanel?

Foi útil?

Solução

A única maneira realmente é criar um iframe com o relatório lá IIRC. No entanto, este post aqui um cara reivindicações que ele tem uma maneira de corrigi-lo com algum código. embora i havnt ainda tentou isso como eu nunca tive uma necessidade de mostrar qualquer um dos meus relatórios em um painel de atualização. I tendem a manter meus relatórios externos de qualquer aplicativos Ajax, por exemplo, quando um relatório é solicitado i irá abrir uma nova janela com apenas o relatório. Meus usuários desse tipo melhor de qualquer maneira.

Outras dicas

i corrigido este bug usando

Microsoft Report Viewer 2010 Redistributable Package de:

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

, em seguida, mudar de configuração web da seguinte forma

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>

para

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

adicionar este a tempo de execução

<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 tentou muito, mas tenho certeza de que o controle não iria funcionar imediatamente. Tenho certeza de que ele precisa carregar algum Javascript extra, porque acrescenta tanta complexidade, de modo que você pode precisar de carregar aqueles antes de atualizar o painel.

Eu posso também confirmar que a versão mais recente (2010) mencionado no post anterior corrige problema. Ele também elimina a necessidade de definir explicitamente AsyncRendering = false: Digo isto porque outras sugestões lá fora, na web digamos para conjunto esse valor em que a propriedade

Aqui está um exemple:

<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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top