Изменение PostBackUrl в ASP.net после загрузки файла
У меня есть ASP.net, который позволяет пользователям выбирать количество входов и раскрывающихся списков для фильтрации отчета и загрузки отчета Excel после нажатия кнопки в той же форме.
Страница может использоваться несколько раз, изменяя входы и нажимая кнопку загрузки каждый раз.
Кнопка должна отправлять обратно в скрытый IFRAME на отдельную веб-страницу, но я не могу изменить цель для формы на лету по мере необходимости.
<form runat="server" method="post">
<asp:Button runat="server" id="DownloadToExcel" TabIndex="-1" Text="Download To Excel" UseSubmitBehavior="False" PostBackUrl="report.aspx" />
</form>
<iframe style="hide" id="output" src=""></iframe>
Кроме того, когда я загружаю файл при нажатии кнопки "DownloadToExcel", файл загружается, как и ожидалось. Однако любые дополнительные постбэки, включая обновление экрана, отправляются обратно в report.aspx, а не в filter.aspx.
Как исправить постбэк, чтобы он загружал файл только один раз, а затем изменил его обратно на исходную страницу, чтобы экран можно было продолжать использовать для фильтрации и загрузки второго отчета.
Это также может устранить необходимость использования IFRAME.
1 ответ
Я решаю проблему, добавляя PostBackURL непосредственно ко всем кнопкам отправки.
Один для загрузки Excel, который идет в report.aspx, а другой для обратной передачи на странице для filter.aspx.
Похоже, что если изменяется обратная передача, в данном случае к report.aspx, он повторно использует путь к любым последующим обратным передачам, если не определена степень детализации, каждый раз, когда вы хотите выполнить обратную передачу.