gpt4 book ai didi

c# - response.end 后进度条不隐藏

转载 作者:行者123 更新时间:2023-11-30 20:57:12 28 4
gpt4 key购买 nike

我可以在我的项目中下载 excel 文件。单击导出按钮时会显示进度条。但即使出现浏览器的另存为对话框,进度条也不会消失。问题是在 response.end 进度条未被使用之后。进度条在 asp.net ajax 开始请求时可见,在结束请求时不可见。代码如下所示。

可见和隐藏进度条:

Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args) {
// alert('B');
var elem = args.get_postBackElement();
ActivateAlertDiv('visible', 'AlertDiv', elem.value + ' processing...');
}
function EndRequestHandler(sender, args) {
ActivateAlertDiv('hidden', 'AlertDiv', '');
}
function ActivateAlertDiv(visstring, elem, msg) {
var adiv = $get(elem);
adiv.style.visibility = visstring;
// adiv.innerHTML = msg;
}

导出点击文件下载:

Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=" + OUTPUTFILE + ".xls");
Response.AddHeader("Content-Type", "application/Excel");
Response.ContentType = "application/ms-excel.xls";
Response.AddHeader("Content-Length", file_New.Length.ToString());
Response.WriteFile(file_New.FullName);
Response.Flush();
file_New.Delete();

最佳答案

因为当文件发送到客户端时响应结束。您需要在新页面中执行此操作。

在您的页面中,将您的代码替换为:

Session["OUTPUTFILE"] = OUTPUTFILE;
ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "var Mleft = (screen.width/2)-(760/2);var Mtop = (screen.height/2)-(700/2);window.open( 'file.aspx', null, 'height=700,width=760,status=yes,toolbar=no,scrollbars=yes,menubar=no,location=no,top=\'+Mtop+\', left=\'+Mleft+\'' );", true);

新页面(称为“file.aspx”):

protected void Page_Load(object sender, EventArgs e)
{
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=" + Session["OUTPUTFILE"].ToString()+ ".xls");
Response.AddHeader("Content-Type", "application/Excel");
Response.ContentType = "application/ms-excel.xls";
Response.AddHeader("Content-Length", file_New.Length.ToString());
Response.WriteFile(file_New.FullName);
Response.Flush();
file_New.Delete();
}

关于c# - response.end 后进度条不隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17020131/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com