第一种,在页面的时候调用:
cs后台代码:TCSTAR7034
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>