在我的应用程序中,我必须通过以下代码导出我已经实现的excel文件:
Response.ClearContent();
Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", pFileName));
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
FileInfo myFile = new FileInfo(fullfilePath);
Response.WriteFile(myFile.FullName);
Response.Flush();
HttpContext.Current.ApplicationInstance.CompleteRequest();
Response.End();
从我的主页面出现“导出到Excel”按钮,点击该按钮我已经注册了如下Javascript:
ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), "<script language=JavaScript>window.location.href('GenerateExcel.aspx');</script>");
在GenerateExcel.aspx
页面的页面加载中,我已经编写了上面发布的导出文件的代码。这个代码对我有用,当用户点击“导出到Excel”按钮的Windows文件打开,保存&amp;关闭弹出窗口是apeear,用户可以保存或打开文件,但我的问题是,在该文件打开弹出窗口后,我想刷新主页面。我已经尝试注册javascript,但在Response.End
nothiing工作之后。
请帮帮我。
答案 0 :(得分:0)
您已使用window.location.href
更改了主窗口的位置,然后HTTP响应具有Excel MIME类型。主窗口不再具有HTTP响应,无法刷新。
相反,您应该打开一个全新的窗口并使用它来发送Excel文件响应。然后,您仍然可以刷新主窗口。
你的脚本应该是这样的;
<script>
window.open('GenerateExcel.aspx', 'Export To Excel');
window.location.href=window.location.href;
</script>
避免打开窗口的另一种方法是制作HTTP Request with JavaScript,但这需要jQuery才能获得可靠的跨浏览器解决方案。