.net导出excle ajax与response不能一起用,请求解决方案 10

我现在遇到一个问题是这样的,我用ajax导出excle的时候由于用到response.write方法,所以ajax跟response起冲突一个是同步请求一个是异步请求,为... 我现在遇到一个问题是这样的,我用ajax导出excle的时候由于用到response.write方法,所以ajax跟response起冲突一个是同步请求一个是异步请求,为了避免报错我就用了一个空白的页面专门处理导出excle的代码,当点击导出excle按钮时跳转到这个空白页,如果我用的是ie7或者是ie8浏览器的话点击保存或下载这个空白页面就会自动关闭,而ie6就不会,客户的要求必须浏览器是用ie6的,所以请各位高手帮帮忙想想办法将这个ie6的页面关闭。或者有什么好的办法导出excle,不用js。 展开
 我来答
lovermagic
2010-08-31 · TA获得超过251个赞
知道小有建树答主
回答量:424
采纳率:0%
帮助的人:297万
展开全部
1. 加入一个新Web Form, 命名为DownloadFile.aspx
代码如下:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim strFileName As String
Dim strReportName As String
Dim intPosition As Integer
If Request.QueryString("FileName") Is Nothing Then
Response.RedirectErrorPage.aspx?ErrorTitle=505", False)
Exit Sub
End If
strFileName = Server.UrlDecode(Request.QueryString("FileName"))

If strFileName.Trim = "" Then
Response.Redirect(ErrorPage.aspx?ErrorTitle=505", False)
End If
If strFileName.Trim <> "" Then
'get rid of part ahead of "_"
intPosition = strFileName.IndexOf("_")
strReportName = strFileName.Substring(intPosition + 1)
'only download file located in "/DownloadFolder/" folder
strFileName = Server.MapPath("/DownloadFolder/") & strFileName
If IO.File.Exists(strFileName) Then
Dim fi As New IO.FileInfo(strFileName)
'strFileName.IndexOf("Reports") > -1 to avoid attack
'Response.Clear()

Response.AppendHeader("Content-Disposition", "attachment;filename=" & strReportName)
Response.AppendHeader("Content-Length", fi.Length.ToString())
Response.ContentType = "application/ms-excel"

Response.WriteFile(strFileName, 0, fi.Length)
'Response.Flush()
'Response.End()
'close immediately after show save dialog
ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "CloseDownloadWindow", "<script type='text/javascript'> window.close(); </script>", False)
Else
Response.Redirect("/ErrorPage.aspx?ErrorTitle=505", False)
End If
End If

End Sub

然后在下载的代码中写:

ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "OpenDownloadWindow", String.Format("<script type='text/javascript'> location.href='/DownloadFile.aspx?FileName={0}';</script>", Server.UrlEncode(strFileName)), False)

大概代码就是以上,自己改改吧,不行的话可以hi我
xx_lzj
2010-08-28 · TA获得超过970个赞
知道大有可为答主
回答量:578
采纳率:0%
帮助的人:722万
展开全部
aspx页面只是aspnet处理管线中的一种Handler。
添加新项:一般处理程序,将新建ashx文件,其地位与aspx页面相同,但不包含Page的东西,加入导出excel的代码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式