Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从codebehind c#&;调用javascript;Asp.Net_C#_Javascript_Asp.net - Fatal编程技术网

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

从codebehind c#&;调用javascript;Asp.Net,c#,javascript,asp.net,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.GetTy

我无法理解为什么不能从代码隐藏中调用下面的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);

我遗漏了什么吗?没有任何异常或错误。

Page.ClientScript.RegisterStartupScript在我看来没有问题(可能遗漏了什么)。尝试的事情

  • 在调用中添加撇号-它是作为对象进行的。试一试

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

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

  • 我知道如果函数在同一页中,则找不到它们。尝试移动到外部js文件。不要问我为什么这已经解决了问题,但它在过去的几次为我

  • 仅出于调试目的,将函数从等式中去掉,尝试使警报按如下方式工作。如果它真的起作用,它至少会隔离问题

    this.Page.ClientScript.RegisterStartupScript(this.GetType(),“Cox”,“alert('this work?'),true)

  • 查看页面的源代码。是否将函数写入页面(或从第4点发出警报)。应该是。如果在
    this.Page.ClientScript.RegisterStartupScript
    方法上放置断点,是否会命中它?看起来可能不是

  • 抱歉没有给你一个“嘿,这就是解决方案”类型的回答。我过去也有过类似的事情,我发现这是一个剥离的问题,直到问题被隔离。当然,其他人可能会发现眼前的问题。祝你好运。

    这对我很有用:

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

    “这不起作用”不是对问题的好描述。什么不起作用?发生了什么你不希望发生的事情?什么不是?错误?异常?Hi Oded,已经编辑了我的问题,不能从codebehind方法调用javascript代码。没有任何错误或异常。调试的第一步应该是检查来自服务器的实际html。。。它是否包含对callsCox的调用?Bucket,尝试按照您描述的步骤进行操作,奇怪的是,正如您在步骤4中所解释的,我甚至无法获得“警报”。@Samuel。只需将this.Page.ClientScript.RegisterStartupScript替换为第4点上的脚本。它应该只嵌入警报,警报就会出现。如果这不起作用,那么它就与JS函数没有任何关系。所以它一定是寄存器方法出错了。我将用另一个ideaYes Buket进行编辑,现在显示警报。。唯一改变的是用“脚本”替换Cox并添加“;”结束警报。让我尝试将变量传递给Js函数。@Samuel看起来你已经做到了。可能是“;”号最后,非常感谢Buket。我犯了一个非常愚蠢的错误,我只需要一个“;”here String.Format(“callsCox({0}”);”,res);。。。。。。最后终于通过了。非常感谢你与我分享你的时间。你的步骤真的帮了我一把。