Page.RegisterClientScriptBlock和Page.RegisterStartupScript有何区别?

RegisterStartupScript注册的教本是在runat=server的form中的
所以一定得在 <form id="form1" runat="server">中才能注册成功
 
  form没有标明runat="server"导致ClientScript.RegisterStartupScript没有效果
 
Page.RegisterClientScriptBlock和Page.RegisterStartupScript有何区别?
 

RegisterClientScriptBlock一般返回的是客户端函数的包装,

而RegisterStartupScript返回得函数在document装载完成后会执行,

类似于我们平时所说的body onload="f()"里面的函数;

这两个方法在客户端呈现的代码位置不同,

RegisterClientScriptBlock在<form runat=server>之后,

而RegisterStartupScript在</form>之前。

 

 

不带form注册js

注意:这种情况下 header 一定得带式 runtserver 不然脚本会输出在第一行!

      ///   <summary>
        
///  向客户端显示脚本信息,不需要在写&lt;script language=\"javascript\"&gt;
        
///   </summary>
        
///   <param name="script"> 脚本的主体部分 </param>
         public   static   void  AlertScript( string  script)
        {
            script 
=  getScript(script);
            
if  (CurrentPage.Header  !=   null )
            {
                LiteralControl hc 
=  CurrentPage.Header.FindControl( " scriptRegister " as  LiteralControl;
                
if  (hc  ==   null )
                {
                    hc 
=   new  LiteralControl();
                    CurrentPage.Header.Controls.Add(hc);
                }
                hc.Text 
=  script;

            }
            
else
            {
                HttpContext.Current.Response.Write(script);
            }
        }
 
 
Code

 

你可能感兴趣的:(startup)