I am not very skilled in ASP.NET and I have tried to:
- Update UI elements on an aspx site
- at the same time download a file
I have this JS function:
function downloadURL(url) {
var hiddenIFrameID = 'hiddenDownloader',
iframe = document.getElementById(hiddenIFrameID);
if (iframe === null) {
iframe = document.createElement('iframe');
iframe.id = hiddenIFrameID;
iframe.style.display = 'none';
document.body.appendChild(iframe);
}
iframe.src = url;
};
and this Button server control:
<asp:Button runat="server" ID="Button1" Content="DOWNLOAD" OnClick="Button1_Click" />
in the EventHandler I simply call:
// UPDATE UI
textBoxXY.Text = "Text after file download";
ClientScript.RegisterStartupScript(typeof(MyPage), "myDownloadKey", "downloadURL(" + ResolveUrl("~/MyDownloadHandler.ashx") + ");", true);
What do you think of this approach. It seems to work but...
All have to do with the
MyDownloadHandler.ashx
headers. If you add there this headers on your handler ashxthen the browser will open the file save browser and not a new tab.
And you only have to do with javascript is
or just a simple link.
So to summarize, you have create a lot of code that is not necessary, and you make and a post back, that is also not necessary.
Relative: What is the best way to download file from server
Error handling when downloading file from ASP.NET Web Handler (.ashx)