2012-04-05 120 views
0

我正在嘗試將數據網格導出爲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

認爲庫馬爾

回答

0

Response.End()絕對會停止頁面生命週期執行。

也許你可以試試HttpContext.Current.ApplicationInstance.CompleteRequest();

,而不是它。

0

試試這個哥們

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 

歡呼