第一种,在页面的时候调用:
cs后台代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "testalert", " <script type=text/javascript >testAlert();</script>");
}
}
前台加上js代码:
<script type="text/javascript">
function testAlert(){
alert("okokok");
}
</script>
第二 种,在按钮点击时触发:
protected void Button1_Click(object sender, EventArgs e)
{
//在这里写上你的代码
Label1.Text = "测试";
//下面执行js代码
this.Page.ClientScript.RegisterClientScriptBlock(this.Page.GetType(), "testalert", "testAlert()", true);
}
这两种调用一般会刷新页面。
有一个问题需要注意,如果把这个按钮弄成异步的话,事件就触发不了了。
如:在UpdatePanel中,用Triggers引用的话,事件就触发不了。
<Triggers>
<asp:PostBackTrigger ControlID="Button1"/>
</Triggers>
最后,讲一下RegisterStartupScript和RegisterClientScriptBlock的差别:
Page.ClientScript.RegisterStartupScript(Page.GetType(),"alert1", "alert('test')",true);
在生成页面的后半部分!!
Page.ClientScript.RegisterClientScriptBlock(Page.GetType(),"alert1", "alert('test')",true);
在生成页面的前半部分!!
其中true,表示可以不输入<script> </script>
本文介绍ASP.NET中两种JavaScript调用方法:页面加载时和按钮点击时,并讨论了同步与异步触发的区别,同时对比了RegisterStartupScript与RegisterClientScriptBlock的不同应用场景。
2736

被折叠的 条评论
为什么被折叠?



