在网页内我有一个Excel下载按钮,该按钮会重定向到通过application/ms-excel
MIME类型提供所请求的Excel文件的网页,这通常会导致在浏览器中下载文件。
在网页中,我有以下jQuery代码:
$(document).ready(function () {
$(".div-export .button").click(function () { setBusy(true); });
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function () {
setBusy(false);
});
});
当用户等待提供Excel文件时,会显示忙碌的动画。
问题是:动画在文件下载后没有结束(setBusy(false);
),因为endRequest
事件不会被触发,可能是因为服务器重定向。
有没有人有解决方法呢?
修改:下载按钮在UpdatePanel
。
答案 0 :(得分:1)
我决定使用在重置鼠标光标后触发的javascript文档重定向,而不是使用服务器重定向。为此,我已经包含了一个隐藏字段的隐藏字段:
<asp:HiddenField id="hidExportUrl" runat="server" EnableViewState="false" />
由客户端end_request
处理程序处理:
$(document).ready(function () {
$(".div-export .button").click(function () { setBusy(true); });
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function () {
setBusy(false);
var url = $("[id$='hidExportUrl']").val();
if (url && url != "") {
$("[id$='hidExportUrl']").val("");
window.location = url;
}
});
});
答案 1 :(得分:0)
例如,如果您有弹出窗口,则定义:
var myWindow = window.open("/MyPopup.aspx, "myWindow",
"height=550,width=780,top=100,left=100");
尝试类似:
$(myWindow).bind('unload', function(){setBusy(false)});