我有一个按钮点击事件的代码:
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不正确?
答案 0 :(得分:3)
尝试以下,
您必须为脚本指定有效名称。 http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspx
启动脚本由其密钥及其类型唯一标识。 具有相同密钥和类型的脚本被视为重复。只有一个 具有给定类型和密钥对的脚本可以在页面中注册。 尝试注册已注册的脚本不会 创建脚本的副本。
ShowMessage
应在页面
您必须将参数作为字符串传递。 ShowMessage('" + message +"');
最终代码应该是这样的
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);
}