Dzwebs.Net

撰写电脑技术杂文十余年

RegisterClientScriptBlock和RegisterStartupScript不同之处

Admin | 2015-3-24 13:21:50 | 被阅次数 | 3305

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  RegisterClientScriptBlock和RegisterStartupScript这两个方法,都是用来在客户端调用JS代码的。

  这两个方法在客户端呈现的代码位置不同,RegisterClientScriptBlock在<form>之后,而RegisterStartupScript在</form>之前。

 如果你的脚本有与页面对象(doucument对象)进行交互的语句,则推荐使用 RegisterStartupScript,反之如果要想客户端脚本尽可能早的执行,则可以使用RegisterClientScriptBlock。

  也就是说,RegisterClientScriptBlock在页面显示出来之前就执行,而RegisterStartupScript是页面显示完成后执行。区别就在于前后的不同。

  备注:RegisterStartupScript 等页面元素实例化后弹出对话框,比较适合操作某功能后消息提示;

  RegisterClientScriptBlock先弹出对话框待确认后页面元素再实例化。

  下面为大家举例:

  如果你的页面中有如下代码:

  <asp:TextBox ID=”TextBox1” Runat=”server”>Hello ASP.NET</asp:TextBox>

  c#代码
  protected void Page_Load(object sender, EventArgs e)
  {
    string myScript = @”alert(document.forms[0][‘TextBox1’].value);”;
    Page.ClientScript.RegisterClientScriptBlock(this.GetType(),“MyScript”, myScript, true);
  }

  此页面运行时会报错,原因是JavaScript function先于text box被安放于浏览器。因此JavaScript function找不到TextBox1。

  c#代码
  protected void Page_Load(object sender, EventArgs e)
  {
    string myScript = @”alert(document.forms[0][‘TextBox1’].value);”;
    Page.ClientScript.RegisterStartupScript(this.GetType(),“MyScript”, myScript, true);
  }

  这段代码把JavaScript function放置于ASP.NET page底部,因此JavaScript运行时它能找到TextBox1。


网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231