Изменение 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, он повторно использует путь к любым последующим обратным передачам, если не определена степень детализации, каждый раз, когда вы хотите выполнить обратную передачу.

Другие вопросы по тегам