导出到excel后的asp.net重新加载页面

时间:2012-08-23 10:35:07

标签: asp.net export-to-excel

我有一个页面,可以在按钮点击时将文档导出为ex​​cel。我需要做的是在发送excel文档后刷新页面。

我正在尝试注册一个会导致页面刷新的脚本,但是无法在导出到excel的同时注册它。

ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "test", "alert('Done');", True)

Response.Clear()
Response.ClearHeaders()
Response.AddHeader("Refresh", "3; url=" + Request.RawUrl)
Response.ContentType = strMimeType
Response.AddHeader("content-disposition", "attachment; filename=CompleteReport." + strFilenameExtension)
Response.BinaryWrite(bytFileContent)
Response.End()

2 个答案:

答案 0 :(得分:0)

基本上如果你想在文件下载后只重新加载就无法完成,因为它不可能找到它。您还要清除响应然后编写excel,以便甚至不从服务器返回脚本。下载文件时浏览器不使用refresh-header。

你可以做的是使用aspx页面包含一个脚本,如:

function onclick() {
  window.location.href = 'loadmyfile.ashx?parameters...';

  refreshPage();
}

然而,上面的内容会在点击时立即刷新页面,这可能与您所追求的不同。

答案 1 :(得分:0)

你可以制作

每个请求只有一个响应

(首先是excel导出,第二次是刷新)。 在第一次回复之后,你什么也做不了。 你必须用组件等解决excel导出的另一种方式。 出口后你可以打电话给

Response.redirect("your page");