Элемент управления ReportViewer и Ajax UpdatePanel - PullRequest
4 голосов
/ 01 октября 2008

Кто-нибудь из вас когда-нибудь находил способ заставить элемент управления Microsoft Report Viewer (Web) работать из панели обновления Ajax?

Ответы [ 5 ]

3 голосов
/ 02 октября 2008

Единственный способ действительно создать iframe с отчетом в iirc. Тем не менее, этот пост здесь парень утверждает, что у него есть способ исправить это с помощью некоторого кода. хотя я даже не пытался это сделать, поскольку у меня никогда не было необходимости показывать свои отчеты в панели обновлений. Я склонен хранить свои отчеты вне каких-либо приложений ajax, например, когда запрашивается отчет, я открываю новое окно только с отчетом. Моим пользователям это нравится так или иначе.

3 голосов
/ 20 апреля 2010

я исправил эту ошибку с помощью

Распространяемый пакет 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>

0 голосов
/ 02 февраля 2017

Вот пример:

<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>
0 голосов
/ 20 мая 2010

Я также могу подтвердить, что последний выпуск (2010), упомянутый в предыдущем посте, исправляет проблему. Это также устраняет необходимость явной установки AsyncRendering = False: я упоминаю об этом, потому что другие предложения в Интернете говорят об установке этого значения для этого свойства

0 голосов
/ 02 октября 2008

Никогда не пытался, но я уверен, что контроль не сработает сразу. Я почти уверен, что ему нужно загрузить дополнительный Javascript, потому что он добавляет много сложности, поэтому вам может понадобиться загрузить их перед обновлением панели.

...