我无法理解为什么不能从后面的代码中调用以下的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);
我错过了什么吗?没有任何例外或错误。
答案 0 :(得分:2)
Page.ClientScript.RegisterStartupScript
看起来对我好(可能错过了什么)。要尝试的事情
将撇号添加到调用中 - 它作为对象传递。尝试作为字符串
string script = String.Format(“callsCox('{0}')”,res);
在更新面板部分回发后是否调用字符串脚本Page.ClientScript.RegisterStartupScript
。这可能会影响它
我知道如果它们在同一页面中,则找不到功能。尝试移动到外部js文件。不要问我为什么这已经解决了问题,但过去有几次对我来说。
仅出于调试目的,将函数全部放在等式中,尝试使警报像这样工作。如果它确实有效,它至少会隔离问题
this.Page.ClientScript.RegisterStartupScript(this.GetType(),“Cox”,“alert('这有用吗?')”,“是”;
查看页面来源。该功能是否写入页面(或从第4点开始提醒)。它应该是。如果你在this.Page.ClientScript.RegisterStartupScript
方法上设置一个断点,它是否被击中?好像它可能不是。
抱歉不给你一个'嘿这是解决方案'的答案。我过去曾经有这样的东西,我发现这个问题一直存在,直到问题被隔离开来。其他人当然可以发现一个直接的问题。祝你好运。
答案 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);
}