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

 

原文地址:https://www.cnblogs.com/aaa6818162/p/1520398.html