Reputation: 9411
I need to initiate file download from ASP.NET page from javascript code.
What would be my best option? Is it possible to call a webservice to do so, or somehow call usual event handler of C# page?
Note that I will retrieve a large amount of data, many megabytes.
Upvotes: 1
Views: 7575
Reputation: 6462
You can use a hidden IFRAME element and initiate a file download request, which does give the feeling for a AJAX file download.
While the file is being downloaded you can do other activity in your form on client side.
Yes you can call a webservice or aspx page or http handler as well in this URL
function dowloadFileJS() {
// Create an IFRAME.
var iframe = document.createElement("iframe");
// Point the IFRAME to GenerateFile
iframe.src = "GenerateFile.aspx?yourQueryString=myQueryString";
// This makes the IFRAME invisible to the user.
iframe.style.display = "none";
// Add the IFRAME to the page. This will trigger a request to GenerateFile now.
document.body.appendChild(iframe);
}
Upvotes: 2
Reputation: 544
You can use Javascript to create an iframe to the file you want to download. Have a look at this answer: Starting file download with JavaScript
Upvotes: 0