我有一个页面,可以在按钮点击时将文档导出为excel。我需要做的是在发送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()
答案 0 :(得分:0)
基本上如果你想在文件下载后只重新加载就无法完成,因为它不可能找到它。您还要清除响应然后编写excel,以便甚至不从服务器返回脚本。下载文件时浏览器不使用refresh-header。
你可以做的是使用aspx页面包含一个脚本,如:
function onclick() {
window.location.href = 'loadmyfile.ashx?parameters...';
refreshPage();
}
然而,上面的内容会在点击时立即刷新页面,这可能与您所追求的不同。
答案 1 :(得分:0)
你可以制作
(首先是excel导出,第二次是刷新)。 在第一次回复之后,你什么也做不了。 你必须用组件等解决excel导出的另一种方式。 出口后你可以打电话给
Response.redirect("your page");