【问题标题】:download pdf directly on submit click and redirect直接在提交点击和重定向下载pdf
【发布时间】:2014-09-04 07:51:25
【问题描述】:

我的系统中有一个要求,即在单击提交按钮时以 pdf 格式生成报告,从而下载它,当下载 pdf 时,页面应重定向到新页面。 现在我可以使用 window.open 为 pdf 文件打开一个窗口,该文件在新窗口中生成 pdf 并被下载,然后旧选项卡重定向到新 url。

我需要的过程是下载应该在不打开新标签的情况下进行,然后页面应该重定向到新的 url。 我可以做一件事,但不能同时做。

任何建议都会有所帮助。

string strJSCPTText = string.Empty;

string url = clsAppConfig.SiteURL + "PDFReport.aspx?qid=" + objQ1.QId;

strJSCPTText += "window.open('" + url + "', 'popup_window', 'width=500,height=300,left=100,top=100,resizable=yes');";

strJSCPTText += "window.location.href = '" + clsAppConfig.SiteURL + "QList.aspx" + "';";

ClientScript.RegisterStartupScript(this.GetType(), "script", strJSCPTText , true);

【问题讨论】:

  • 能否将 location.href 设置为服务器上的文档 url?如果是这样,用户将获得打开/另存为提示。
  • 您可以使用 iframe 并将其源设置为您的 PDF。
  • 将window.open(不知道为什么location.href)更改为pdf下载的document.URL没有任何作用,它既不下载也不重定向
  • 我确实尝试在从代码隐藏动态设置 src 后使用 iframe,重定向发生但 pdf 下载没有。
  • 问题是你没有等到 iframe 被加载。显示我更新的答案。

标签: c# javascript asp.net pdf redirect


【解决方案1】:

您可以使用与此非常相似的解决方案。但很简单,不要使用新窗口,而是使用内联框架,也就是 iframe

并且不要直接进行重定向。等到 iframe 加载完毕。要进行展示,请订阅其onload 事件,如下所示:

即,在 iframe 的 onload 内进行重定向。

【讨论】:

  • 在使用 iframe 时,我只是设置了 src 和可见性属性吗?字符串 strJavascriptText = string.Empty;字符串 url = clsAppConfig.SiteURL + "PDFReport.aspx?qid=" + objQ1.QId; rptpdfTBCG.Visible = true; rptpdfTBCG.Attributes.Add("src",url); strJSCPTText += "window.location.href = '" + clsAppConfig.SiteURL + "QList.aspx" + "';"; ClientScript.RegisterStartupScript(this.GetType(), "script", strJSCPTText true);
  • 是的,看看我的更新。问题是您在 iframe 有机会加载之前重定向了页面。
猜你喜欢
  • 1970-01-01
  • 2018-10-28
  • 1970-01-01
  • 2023-02-08
  • 2013-01-26
  • 2012-05-17
  • 2016-11-10
  • 1970-01-01
  • 2014-11-27
相关资源
最近更新 更多