当用户单击我网站上的按钮时,我在服务器端制作了一个excel文件,并将其写入响应中。
HttpResponse httpResponse = Page.Response;
httpResponse.ClearHeaders();
httpResponse.ClearContent();
httpResponse.Clear();
httpResponse.Buffer = true;
httpResponse.AppendHeader("Content-Disposition",
"attachment; " +
"filename=\"" + fileName + "\";");
httpResponse.ContentType = "application/vnd.xlsx";
httpResponse.Charset = "";
using (MemoryStream memoryStream = new MemoryStream())
{
workbook.SaveAs(memoryStream);
memoryStream.WriteTo(httpResponse.OutputStream);
memoryStream.Close();
}
httpResponse.Flush();
httpResponse.End();
编写完该文件后,我希望运行一个JavaScript脚本块,但似乎无法完成这项工作。我听说当我清除响应时,由于用户未获得与响应相同的页面,所以无法使用Page.ClientScript.RegisterStartupScript
(不赞成使用?)编写脚本块,但是我希望有一种解决方法。
进行回发和获取文件的按钮不在UpdatePanel中,因此我无法使用在那里实现的PageRequestManager.add_endRequest函数。而且我无法将控件放入UpdatePanel中,因为它不允许我在异步回发中写入文件。
在回发结束时还有其他方法可以触发javascript函数吗?检查间隔是否正在进行(或已完成)的JavaScript间隔函数也是一种可接受的解决方案(但据我所知,JavaScript无法“检查”同步间隔是否正在进行)。
参考方案
Response.End()中止线程并将执行发送到Application_EndRequest。
在那之后什么也做不了。您可以下载文件或执行javascript。但是有使用iframes的解决方案。
最近,在编写我无法理解的javascript时遇到了字符串比较的问题。我从完全相同的网址创建了两个字符串,当我比较它们时返回false,但是在重新分配相同的字符串后,比较返回true。这是我的示例:var str1 = "http://google.com/"; var str2 = "http://google.com/…
Javascript-从当前网址中删除查询字符串 - javascript单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…
Mongo汇总 - javascript我的收藏中有以下文件{ "_id": ObjectId("54490b8104f7142f22ecc97f"), "title": "Sample1", "slug": "samplenews", "cat": …
JavaScript中的字符串评估函数 - javascriptJavaScript中是否有任何内置函数,例如Python中的eval内置函数?注意:eval函数将方程式作为字符串并返回结果。例如,假设变量x为2,则eval("2x+5")返回9。 参考方案 是的,JavaScript中也有eval函数。此外,该声明应有效用于评估,即eval("2*x+5"…
如何在JQuery中操作JSONArray - javascript我有一个php函数,它以JSON返回此代码{"0":{"title":"Dans l\u2019appartement"},"1":{"title":"A l\u2019a\u00e9roport - D\u00e9part de B\u00e9at…