2017-02-01 15 views
1

У меня есть веб-приложение, которое использует ajax с asp.net и C#. Теперь я пытаюсь экспортировать средство просмотра отчетов из CodeBehind (имя страницы original.aspx) в виде файла PDF при нажатии на кнопку ASP. Все работает отлично, за исключением случаев, когда я помещал кнопку в UpdatePanel. Поэтому после поиска в Интернете я обнаружил, что Response.BinaryWrite, Response.Flush и т. Д. Не работают с UpdanePanel, если только я не укажу кнопку как PostBackTrigger, которая затем пренебрегает с целью использования UpdatePanel, потому что на странице есть много элементов управления и так много шагов происходит до достижения этапа экспорта.

Итак, я передал код для экспорта в PDF на событие «Загрузить страницу» на другой странице (скажем, Default.aspx) и подумал использовать Response.Redirect, чтобы открыть новую вкладку для страницы экспорта.

Что действительно случилось, так это то, что PDF-файл загружается автоматически (пока он находится на исходной странице (original.aspx)) и без перенаправления. Что хорошо, но UpdateProgress был активирован и никогда не прекращал показывать изображение gif. Просто продолжайте цикл. При удалении UpdateProgress из кода все работает как ожидалось. Файл экспортируется и загружается, когда кнопка находится внутри UpdatePanel (async not PostBackTrigger) и использует Response.Redirect из CodeBehind.

Есть ли какое-либо решение для отключения, убивающее процесс UpdateProgress из кода позади только с определенным кликом или любым другим решением для этой проблемы?Response.Redirect внутри панели обновления при использовании обновления прогресса C# .NET

ответ

1

Вы можете установить идентификатор элемент управления внутри PostBackTrigger обратной передачи полной страницы вместо частичного обновления страниц, которая вызывает загрузки файла проблему.

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    ... 
    <Triggers> 
     <asp:PostBackTrigger ControlID="DownloadButton" /> 
    </Triggers> 
</asp:UpdatePanel> 

 Смежные вопросы

  • Нет связанных вопросов^_^