在asp.net中的Response.End()之后隐藏模态窗口

时间:2012-11-08 19:07:39

标签: c# asp.net

我有一个执行以下操作的按钮:

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,但之后我的模态窗口仍然出现,那是因为页面没有被刷新

我能做些什么吗?

提前致谢

1 个答案:

答案 0 :(得分:2)

简短的回答是你不能这样做。

使用按钮回发后,您所在的页面正在等待加载新内容。此时您无法从后面的代码对当前页面dom进行任何控制,例如发送一个javascript代码来执行。

即使您确实发送了整页,也是一个新的整页。

你可以做一些其他技巧,例如使用处理程序下载文件和链接,或者使用ajax发送命令,然后再返回一个指向处理程序的链接 - 但是这样,有一个完整的帖子,你不能这样做。