asp.netiframedownloadpostbackpostbackurl

changing the PostBackUrl in ASP.net after a file download


I have a ASP.net which allows users to select a number of inputs and dropdown lists to filter the report and to download an Excel report after pressing a button on that same form.

The page can be used mulitple times, by changing the inputs and pressing the download button each time.

The button should be posting back to the hidden IFRAME to a separate webpage, but I am unable to change the target for the form on the fly as needed.

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

Additonally, when I download the file when pressing the "DownloadToExcel" button, the file downlodads as expected. However, any additional postbacks including updating the screen are posting back to report.aspx and not filter.aspx.

How do I correct the postback so it only postbacks once to download the file, and then change it back to the original page so the screen can continue to be used to filter and download a second report.

This may also eliminate the need of the IFRAME as well.


Solution

  • I solve the problem my adding PostBackURLs to all the submit buttons directly.

    One for the Excel download that goes to report.aspx and the other for the postback on the page for filter.aspx.

    It appears that if the postback is changed, in this case to report.aspx, it reuses the pathname for any subsequent postbacks, unless defined explicity, for each time you wish to postback.