【问题标题】:calling javascript function from code behind under some condition [duplicate]在某些条件下从代码后面调用javascript函数[重复]
【发布时间】:2011-11-12 16:54:21
【问题描述】:

可能重复:
Calling ASP.NET Code Behind function from Javascript
using javascript function to be called from code behind under specific condition

这是一个javascript函数。

     function openWinContentTemplate() {
     $find("RadWindow_ContentTemplate").show();
     }

我想在以下条件下从按钮点击后面的代码中调用这个 javascript 函数:

    protected void button_click()
    {
     if(true)
        //call javascript function here
    }

【问题讨论】:

    标签: c# javascript asp.net


    【解决方案1】:

    您不能调用代码隐藏。代码隐藏在服务器上,您的脚本在客户端上运行。当浏览器收到响应时,使用代码隐藏中的 RegisterStartupScript 调用脚本。

    【讨论】:

    • 嗨,我正在使用它,但它不起作用。你能解释一下
    【解决方案2】:

    你可以试试这样......

    您可以将 Js 函数作为注册在代码隐藏本身上的脚本调用

    Page.RegisterStartupScript("key","value")
    

    key 是你要给脚本起的名字

    示例

    "PageClose"
    

    值是

    stringBuilder str = new StringBuilder()
    str.Append("<script = language='javascript'>");
    str.Append("window.close();");
    str.Append("</script>")
    

    在这里而不是使用window.close 你可以附加你的js function as a string,理想情况下我把这个字符串生成器类和在构造函数中构建脚本,如果我需要它总是在页面中。

    然后在要执行脚本的事件处理程序中使用这个

    Page.RegisterStartUp("PageClose",str.ToString());
    

    这会将 javascript 放在所呈现页面的结束标记之前

    Page.ClientScriptBlock("PageClose",str.ToString());
    

    这会将 JS 函数放置在渲染页面的开始标记之后

    希望对你有帮助

    【讨论】:

    • 它不工作 .Page.RegisterStartUp("PageClose",str.ToString());这不起作用,因为 Page.RegisterStartUp 不起作用,因为没有这种方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多