第一种,在页面的时候调用:
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>