双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

form提交后如何获取提交完成事件?

pig357 pig357 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
环境:asp.net C# vs2008
问题:点击页面上“导出”按钮,弹出“正在导出对话框”,然后使用form提交方式实现execl导出功能。现在导出功能完成了,就是不知道如何在导出后自动关闭遮罩层,也就是说不知道form提交完成事件是什么。

//通过form.submit的方式实现导出execl的功能
function _exportExecl(params){
...//弹出正在导出对话框
var downloadHelper = $('<iframe style="display:none;" id="downloadHelper"></iframe>').appendTo('body')[0];
var doc = downloadHelper.contentWindow.document;
if (doc) {
doc.open();
doc.write('')//微软为doc.clear()有时会出bug
doc.writeln("<html><body><form id='downloadForm' name='downloadForm' method='post' action='" + params.url + "'>");
for (var key in params)
doc.writeln("<input type='hidden' name='" + key + "' value='" + params[key] + "'>");
doc.writeln('<\/form><\/body><\/html>');
doc.close();
var form = doc.forms[0];
if (form) {
form.submit(); //提交表单后如何得到完成事件?
}
}
}

后台:

public void ProcessDownloadRequest(HttpContext context, Dictionary<string, string> dic)
{
.....//通过NPOI生成EXECL

#region 下载文件
Stream iostream = exporter.SaveAsStream();
byte[] buffer = new byte[iostream.Length];
iostream.Position = 0;
iostream.Read(buffer, 0, buffer.Length);
iostream.Close();

var res = HttpContext.Current.Response;
res.ContentType = "application/octet-stream";
//通知浏览器下载文件而不是打开
res.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(Decode("exportname"), System.Text.Encoding.UTF8));
res.BinaryWrite(buffer);
res.Flush();
res.End();
#endregion
}

我试着在ProcessDownloadRequest中添加context.Response.Write("导出成功"),结果连导出都没有了。。。
请问这个改怎么修改,当保存文件对话框显示时自动关闭遮罩?
...全文

相关推荐

评论 27
收藏 已收藏
分享
返回顶部
pig357
.NET社区 62,274 成员 668,968 内容