从codebehind c#&中调用javascript Asp.Net

时间:2012-01-08 13:16:07

标签: c# javascript asp.net

我无法理解为什么不能从后面的代码中调用以下的javascript代码

我有一个像这样的简单的javascript块

  function callsCox(res) {
    alert(res);
   }

从我的代码背后:

 ....
 string res="COX23";
 string script = String.Format("callsCox({0})", res);
 this.Page.ClientScript.RegisterStartupScript(this.GetType(), "Cox",script,true);

我错过了什么吗?没有任何例外或错误。

2 个答案:

答案 0 :(得分:2)

Page.ClientScript.RegisterStartupScript看起来对我好(可能错过了什么)。要尝试的事情

  1. 将撇号添加到调用中 - 它作为对象传递。尝试作为字符串

    string script = String.Format(“callsCox('{0}')”,res);

  2. 在更新面板部分回发后是否调用字符串脚本Page.ClientScript.RegisterStartupScript。这可能会影响它

  3. 我知道如果它们在同一页面中,则找不到功能。尝试移动到外部js文件。不要问我为什么这已经解决了问题,但过去有几次对我来说。

  4. 仅出于调试目的,将函数全部放在等式中,尝试使警报像这样工作。如果它确实有效,它至少会隔离问题

    this.Page.ClientScript.RegisterStartupScript(this.GetType(),“Cox”,“alert('这有用吗?')”,“是”;

  5. 查看页面来源。该功能是否写入页面(或从第4点开始提醒)。它应该是。如果你在this.Page.ClientScript.RegisterStartupScript方法上设置一个断点,它是否被击中?好像它可能不是。

  6. 抱歉不给你一个'嘿这是解决方案'的答案。我过去曾经有这样的东西,我发现这个问题一直存在,直到问题被隔离开来。其他人当然可以发现一个直接的问题。祝你好运。

答案 1 :(得分:1)

这对我有用:

public static void ShowAlert(Page page, String message)
{
    String Output;
    Output = String.Format("alert('{0}');",message);
    page.ClientScript.RegisterStartupScript(page.GetType(), "Key", Output, true);
}