好吧,我已经看到过这个问题在几个地方被问到但从来没有真正得到一个有帮助或我理解的答案。我刚刚开始使用ASP.net并在4.0框架上使用VS 2010。
我在网上找到了一些代码,允许您从数据集生成.xls Excel文件。
代码如下,但是当我从ajax更新面板外部的按钮运行此代码时,它可以正常工作。如果我从更新面板内的按钮(我需要它)执行代码,那么我得到以下内容:
Sys.WebForms.PageRequestManagerParserErrorException无法解析从服务器收到的消息。
我已经尝试过显示的两个版本的标题,并尝试使用completerequest()而不是response.end。
有人可以向我解释为什么这在更新面板中不起作用以及如何在更新面板中使其工作?
提前致谢!
Protected Sub ExportDataSetToExcel(ByVal ds As DataSet, ByVal filename As String)
Dim response As HttpResponse = HttpContext.Current.Response
' first let's clean up the response.object
response.Clear()
response.Charset = ""
' set the response mime type for excel
response.ContentType = "application/vnd.ms-excel"
'response.ContentType = "application/octet-stream"
response.AddHeader("Content-Disposition", "attachment;filename=""" & filename & """")
' create a string writer
Using sw As New StringWriter()
Using htw As New HtmlTextWriter(sw)
' instantiate a datagrid
Dim dg As New DataGrid()
dg.DataSource = ds.Tables(0)
dg.DataBind()
dg.RenderControl(htw)
response.Write(sw.ToString())
'HttpContext.Current.ApplicationInstance.CompleteRequest()
response.End()
End Using
End Using
End Sub
答案 0 :(得分:1)
试试这个:
response.Flush();
HttpContext.Current.ApplicationInstance.CompleteRequest()
请勿致电reposne.End()
答案 1 :(得分:0)
答案 2 :(得分:0)
对不起,我知道有点晚了,但现在找到了答案。
尝试this回答。我解决它做这里所说的,它完美地运作