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