Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
615
Excel Export via AJAX Call
posted

Hello,

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!