将数据网格导出为ex​​cel时出错

问题描述:

我正在尝试将数据网格导出为ex​​cel。 使用该代码。将数据网格导出为ex​​cel时出错

Response.Clear(); 
        Response.AddHeader("content-disposition", "attachment;filename=Salary_JV_Posting_For_PG_.xls"); 
        Response.Charset = ""; 
        Response.ContentType = "application/vnd.xls"; 
        System.IO.StringWriter stringWrite = new System.IO.StringWriter(); 
        stringWrite.Write("&nbsp;&nbsp;<b><font color=#336699 size = 25px><u>test</u></font></b> "); 
        stringWrite.Write(Environment.NewLine); 
        stringWrite.Write(Environment.NewLine); 
        System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); 
        Response.Flush(); 
        dgLine.RenderControl(htmlWrite); 
        Response.Write(stringWrite.ToString()); 
        Response.End(); 

我试图调试,但在执行的最后一行(到Response.End)如果出现以下错误出现

Data = Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack. 
我使用AJAX

认为库马尔

Response.End()绝对会停止页面生命周期执行。

也许你可以试试HttpContext.Current.ApplicationInstance.CompleteRequest();

,而不是它。

试试这个哥们

Public Sub ExportGridToExcel(ByVal GridView1 As DataGrid, ByVal fileName As String) 
     Response.Clear() 
     Response.AddHeader("content-disposition", String.Format("attachment;filename={0}.xls", fileName)) 
     Response.Charset = "" 
     Response.ContentType = "application/vnd.xls" 
     Dim stringWrite As New StringWriter() 
     Dim htmlWrite As New HtmlTextWriter(stringWrite) 
     GridView1.RenderControl(htmlWrite) 
     Response.Write(stringWrite.ToString()) 
     Response.Flush() 
     Response.[End]() 
    End Sub 

并称之为按钮喜欢这里

Protected Sub ImageButton1_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButton1.Click 
    ExportGridToExcel(DataGrid1, "IT-ADEEL") 
End Sub 

欢呼