在Server Onclick事件之后调用Javascript函数

时间:2013-05-28 08:26:25

标签: javascript

我有一个按钮点击事件的代码:

protected void Button1_Click(object sender, EventArgs e)
{
    string message = "";
    //Series of codes to change the message variable

    Page.ClientScript.RegisterStartupScript(GetType(), "", "ShowMessage(" + message +");", true);
    }



<script type="text/javascript">
    function ShowMessage(msg){
        alert(msg);
    }
</script>

,这不会显示消息。也许我的RegisterStartupScript不正确?

4 个答案:

答案 0 :(得分:3)

尝试以下,

  1. 您必须为脚本指定有效名称。 http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspx

      

    启动脚本由其密钥及其类型唯一标识。   具有相同密钥和类型的脚本被视为重复。只有一个   具有给定类型和密钥对的脚本可以在页面中注册。   尝试注册已注册的脚本不会   创建脚本的副本。

  2. ShowMessage应在页面

  3. 中定义
  4. 您必须将参数作为字符串传递。 ShowMessage('" + message +"');

  5. 最终代码应该是这样的

  6. Page.ClientScript.RegisterStartupScript(GetType(), "myAlertScript", "ShowMessage('" + message +"');", true);

    更新


    如果页面中有更新面板,请尝试使用以下代码。

    ScriptManager.RegisterClientScriptBlock(this,typeof(Page),"myAlertScript","ShowMessage('" + message +"');", true);
    

答案 1 :(得分:2)

message的来电中,您的ShowMessage变量周围缺少引号,请尝试以下操作:

Page.ClientScript.RegisterStartupScript(this.GetType(), "", "ShowMessage(\"" + message + "\");", true);

答案 2 :(得分:0)

要测试邮件是否已发送到客户端,您只需调用本机javascript函数即可排除任何客户端问题。

Page.ClientScript.RegisterStartupScript(GetType(), "", "alert('here?');", true);

您还可以在浏览器中查看页面的来源,以查看代码是否正在传递给客户端。

答案 3 :(得分:0)

在点击处理程序(以及它调用的任何内容)完成后执行代码,在处理程序期间set a timeout

function onClick() {
    window.setTimeout(functionToCall, 0);
}