【问题标题】:Geting javascript error when downloding a xls file from server从服务器下载 xls 文件时出现 javascript 错误
【发布时间】:2011-07-22 17:16:02
【问题描述】:

我有使用 javascript 打开模式窗口的情况,即"download.aspx",在这个 aspx 文件上,我有一个文本框来输入 ID,并根据这个 ID 查询服务器,然后从某个位置下载和 XLS 文件。

我在父窗口上使用 Ajax。

一切都很好,但是当我这样做时Response.Transmit("~/filename.xls");

我也在用"RegisterClientScriptBlock()" or RegisterStartupScript()注册Javascipt

我收到以下错误

Sys.WebForms.PageRequestManagerServerErrorException: 为类型'ASP.downloadxls_aspx' 和键'TicketNotExist' 注册的脚本标签在脚本标签之外有无效字符:alert('Recipient does not exist:')。只能注册格式正确的脚本标签。

【问题讨论】:

  • 您能否编辑您的帖子以包含调用RegisterClientScriptBlock() 的完整代码行?

标签: c# javascript asp.net


【解决方案1】:

您是否尝试过 Response.Redirect("~/filename.xls") ?

【讨论】:

  • 当我将按钮控件保留在更新面板中时,我收到此错误,“Microsoft JScript 运行时错误:Sys.WebForms.PageRequestManagerParserErrorException:无法解析从服务器收到的消息。”但是如果将按钮移到更新面板之外,
【解决方案2】:

调用RegisterClientScriptBlock 传递true 作为最后一个参数,表示您正在传递没有脚本标签的脚本,并且您希望ScriptManager 为您添加它们。例如:

scriptMgr.RegisterClientScriptBlock(this.GetType(), "TicketNotExist",
    "alert('Recipient does not exist:');", true);

【讨论】:

  • 是的,但是为什么这不适用于 ajax,我在更新面板中有一个按钮,单击此按钮我正在注册此 javascript
  • @Sandeep - 它似乎应该与 AJAX 一起工作得很好。请参阅此帖子:RegisterClientScriptBlock within AJAX method call。请注意,他在通话中使用了true
猜你喜欢
  • 2021-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-30
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
相关资源
最近更新 更多