Excel Export via AJAX Call
New DiscussionHello,
I’m trying to use the following sample page to set up a simple Excel export:
http://www.igniteui.com/infragistics-excel/create-excel-worksheet
My goals are the following:
1) When the Export button is clicked, the current page should not have to be re-drawn.
2) The user shouldn’t have to be redirected to another window to perform the export.
To achieve those goals, I set up a little ajax call like this when the Export button is pressed:
var grid= $(“#igGrid”).data(“igGrid”).dataSource.dataView();
$.ajax({
type: “POST”,
url: “/Excel/ExcelExport”,
contentType: “application/json”,
data: JSON.stringify(grid)
});
Everything works fine when the controller receives this post, but when it executes the SendForDownload() method in my controller, no download is actually triggered in the browser. I suspect this is because of the nature of how ajax calls are interpreted by the browser. My SendForDownload() method is almost identical to the sample:
private void SendForDownload(Workbook document, WorkbookFormat excelFormat)
{
string documentFileNameRoot;
documentFileNameRoot = “Document.xlxs”;
Response.Clear();
Response.AppendHeader(“content-disposition”, “attachment; filename=” + documentFileNameRoot);
Response.ContentType = “application/octet-stream”;
document.SetCurrentFormat(excelFormat);
document.Save(Response.OutputStream);
Response.End();
}
Am I going about this the right way? I would really appreciate any advice from the support devs on how to achieve this functionality, whereby the user can simply click Export and see a download prompt appear without altering the state of the currently loaded page.
Thank you!