Javascript 响应结束时导出到exel文件出错
我尝试从数据访问层中返回Javascript 响应结束时导出到exel文件出错,javascript,c#,html,asp.net,Javascript,C#,Html,Asp.net,我尝试从数据访问层中返回dataTable的函数导出excel。现在我的问题是为什么我的响应。end返回一个错误。 datagrid具有数据 无法计算表达式,因为代码已优化或本机帧位于调用堆栈顶部 我的出口代码 if (command == "export") { StringWriter osStringWritter = new StringWriter(); Html32TextWriter osHtmlTextWritter = new Html32TextWriter(
dataTable
的函数导出excel。现在我的问题是为什么我的响应。end
返回一个错误。
datagrid具有数据
无法计算表达式,因为代码已优化或本机帧位于调用堆栈顶部
我的出口代码
if (command == "export") {
StringWriter osStringWritter = new StringWriter();
Html32TextWriter osHtmlTextWritter = new Html32TextWriter(osStringWritter);
DataTable dt = new DataTable();
DataGrid dgv = new DataGrid();
PostTransDA transaction = new PostTransDA();
try {
dt = transaction.getTransaction(from_Dates, to_dates);
if (dt.Rows.Count > 0) {
Response.Clear();
Response.Buffer = false;
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.xls", "TransactionReport"));
Response.Charset = "";
dgv.DataSource = dt;
dgv.DataBind();
dgv.RenderControl(osHtmlTextWritter);
Response.Write("Report Date:" + DateTime.Now);
Response.Write(osStringWritter.ToString());
Response.End();
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.SuppressContent = true;
HttpContext.Current.ApplicationInstance.CompleteRequest();
dgv = null;
osStringWritter = null;
osHtmlTextWritter = null;
}
}
catch (Exception ex)
{
ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "Script", "alert('" + ex.Message + "');", true);
}
}
它返回Response.End()部分的错误
我做错了什么?或者我的代码中有什么问题,请查看下面的链接以了解您遇到的问题。使用Response.End或Response.Redirect或Server.Transfer时,需要处理ThreadAbortException
现在响应结束时没有错误,但没有发生任何事情它没有导出excel它只是读取代码然后什么也不做,知道为什么吗?检查此链接,使用代码在此处准确描述,然后查看发生了什么。注释这两行并检查。HttpContext.Current.Response.SuppressContent=true;HttpContext.Current.ApplicationInstance.CompleteRequest();兄弟还是没发生什么事你试过使用我上面评论中的链接中的代码吗?