ClientScriptManager 类,框架2.0新的机能
用服务器代码可以向页中添加客户端脚本。当客户端脚本的内容依赖于直到运行时才可用的信息时,使用服务器代码创建客户端脚本很有用。当您希望客户端脚本在下列情况下执行时,向页动态添加客户端脚本也很有
ClientScriptManager 类用于管理客户端脚本并将它们添加到 Web 应用程序中。可以从 Page 对象的 ClientScript 属性获取对 ClientScriptManager 类的引用。
通过在网页的 HTML 标记中包含脚本,可以声明方式向网页添加客户端脚本。然而,有些情况下需要动态添加客户端脚本。若要动态添加脚本,根据您想添加脚本的时间及方式,使用 RegisterClientScriptBlock 方法、RegisterClientScriptInclude 方法、RegisterStartupScript 方法或 RegisterOnSubmitStatement 方法(MSDN)
具体操作如下
//javascript文
string csText = "alert('Hello')";
//ClientScriptManager 类用于管理客户端脚本并将它们添加到 Web 应用程序中
ClientScriptManager cs = this.ClientScript;
Type cstype = this.GetType();
if (!cs.IsStartupScriptRegistered(cstype, ""))
{
/* type 要注册的启动脚本的类型
* key 要注册的启动脚本的键
* script 要注册的启动脚本文本
* addScriptTags 指示是否添加脚本标记的布尔值
*/
cs.RegisterStartupScript(cstype, "", csText, true);
}
下面是javascript执行时机的说明
RegisterClientScriptBlock 向页的顶部添加一个脚本块。以字符串形式创建脚本,然后将其传递给方法,方法再将脚本添加到页中。可以使用此方法将任何脚本插入到页中。请注意,脚本可能在所有元素完成之前呈现到页中;因此,您可能无法从脚本中引用页上的所有元素。
RegisterClientScriptInclude 与 RegisterClientScriptBlock 方法类似,但此方法将添加引用外部 .js 文件的脚本块。包含文件在任何其他动态添加的脚本之前添加;因此,您可能无法引用页上的某些元素
RegisterStartupScript 向页中添加一个脚本块,该脚本块在页完成加载后引发页的 onload 事件之前执行。该脚本通常不创建为事件处理程序或函数;它通常只包含要执行一次的语句。
RegisterOnSubmitStatement 添加响应页的 onsubmit 事件而执行的脚本。该脚本在提交页之前执行,允许您取消提交