我有一个执行以下操作的按钮:
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.csv");
Response.Charset = "";
Response.ContentType = "application/text";
//my content is created
Response.Output.Write(sb.ToString());
Response.Flush();
Response.End();
这是我的按钮定义:
<asp:Button ID="Button1" runat="server" onclick="Excel_Click" Text="Export to Csv" onclientclick="ShowModal();"/>
如您所见,我调用了一个javascript函数,该函数执行以下操作:
function ShowModal() {
var divmodal = document.getElementById("divModal");
divmodal.style.display = '';
}
即。显示标签为“正在载入”的模态窗口 我的问题是,当我下载文件时,我得到了生成的csv,但之后我的模态窗口仍然出现,那是因为页面没有被刷新
我能做些什么吗?
提前致谢
答案 0 :(得分:2)
简短的回答是你不能这样做。
使用按钮回发后,您所在的页面正在等待加载新内容。此时您无法从后面的代码对当前页面dom进行任何控制,例如发送一个javascript代码来执行。
即使您确实发送了整页,也是一个新的整页。
你可以做一些其他技巧,例如使用处理程序下载文件和链接,或者使用ajax发送命令,然后再返回一个指向处理程序的链接 - 但是这样,有一个完整的帖子,你不能这样做。