前台:
var downloadFrame;
function doHisRPTDownload() {
var period = $("#" + "<%=MonthSelect.ClientID %>").val();
// Check to be sure this async postback is actually requesting the file download.
if (!downloadFrame) {
downloadFrame = document.createElement("iframe");
// Add the IFRAME to the page. This will trigger a request to GenerateFile now.
document.body.appendChild(downloadFrame);
// This makes the IFRAME invisible to the user.
downloadFrame.style.display = "none";
}
// Point the IFRAME to GenerateFile, with the desired region as a querystring argument.
downloadFrame.src = "AjaxPage/WebAjaxExportHisRPT.aspx?period=" + period;
setTimeout("downloadFrame.src=''", 6000);
}
后台:
public void GenerateXLS(DataTable dt, string fileName, string sheetName, int[] colWidth, int[]colWidthCriteria, string selectionCriteria)
{
byte[] fileData = nrpt.GetMemoryStream(dt, sheetName, colWidth, colWidthCriteria,selectionCriteria).ToArray();
this.Response.Clear();
this.Response.ContentEncoding = System.Text.Encoding.Default;
this.Response.ContentType = "application/vnd.ms-excel"; // "application/octet-stream"; //"application/ms-excel"; //vnd.
this.Response.AppendHeader("content-disposition", "attachment; filename=" +HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8).Replace("+", "%20"));
this.Response.OutputStream.Write(fileData, 0, fileData == null ? 0 : fileData.Length);
this.Response.Flush();
this.Response.End();
}