ClientScriptManager方法
  (1)RegisterClientScriptBlock方法
  向页的顶部添加一个脚本块。以字符串形式创建脚本,然后将其传递给方法,方法再将脚本添加到页中。可以使用此方法将任何脚本插入到页中。请注意,脚本可能在所有元素完成之前呈现到页中;因此,您可能无法从脚本中引用页上的所有元素。
  (2)RegisterClientScriptInclude方法
  与 RegisterClientScriptBlock 方法类似,但此方法将添加引用外部 .js 文件的脚本块。包含文件在任何其他动态添加的脚本之前添加;因此,您可能无法引用页上的某些元素。
  (3)RegisterStartupScript方法
  向页中添加一个脚本块,该脚本块在页完成加载后引发页的 onload 事件之前执行。该脚本通常不创建为事件处理程序或函数;它通常只包含要执行一次的语句。
  (4)RegisterOnSubmitStatement方法
  添加响应页的 onsubmit 事件而执行的脚本。该脚本在提交页之前执行,允许您取消提交。
  (5)IsStartupScriptRegistered方法
  确定Page对象是否注册了启动脚本。
  (6)IsClientScriptBlockRegistered方法
  确定Page对象是否注册了客户端脚本。
 
例:
 ClientScript:
 //为一个控件添加一个属性
 ClientScriptManager csm = this.ClientScript;
        csm.RegisterExpandoAttribute(this.Button4.ClientID, "x", "5");
        //同时注册一个隐藏的值
        //csm.RegisterHiddenField("y", "6");
 ClientScriptManager csm = this.ClientScript;
            csm.RegisterOnSubmitStatement(this.GetType(), "lilei", "return window.confirm('你真的要提交吗');");
scriptManager:
//要注册代码的控件是UpdatePanel1
        ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "lilei", "alert(‘111’)", true);
        //要注册代码的控件是UpdatePanel2
        ScriptManager.RegisterStartupScript(this.UpdatePanel2, this.GetType(), "lilei", "alert(‘222’)", true);
        //要注册代码的控件是Page下面的代码 不管UpdatePanel会不会刷新都会输出
        //ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "lilei", "alert(‘333’)", true);