在ASP.NET中,System.Web.UI.ClientScriptManager用来javascript:;" onClick="javascript:tagshow(event, '%B9%DC%C0%ED');" target="_self">管理脚本,此类可以通过页面对象的ClientScript.属性取得。通过这个对象可以管理网页中的脚本。
由于可能多次向同一个页面中加入脚本,或者需要检查页面中是否已经加入过脚本,ClientScriptManager的许多方法使用了字典集合来进行检查,注册一个脚本内容的时候,需要提供一个字符串类型的资源名称,这个名称可以用来检查是否已经在页面中加入过同样的脚本。
从方法的用途可以分为两类,一类用于检查页面中是否已经加入过资源,这一类的方法以IsRegister开头,另一类用于在页面对象中注册脚本资源,这一类的方法以Register开头。
根据注册的内容,我们还可以将这些方法分成如下的类别:
数组
定义JavaScript.数组,生成一个JavaScript.的数组到页面中。
在JavaScript.程序中,可以如下定义数组
var arrayName = new Array() {数组的初值};
例如:
var myArray = new Array() { “One”, “Two”, “Three” };
publicvoidRegisterArrayDeclaration(
stringarrayName,
stringarrayValue
)
参数:
arrayName:数组的名字
arrayValue:数组的值,用字符串表示,就是在JavaScript.程序中定义在花括号内的内容
脚本块
注册脚本块,一般用于将JavaScript.的函数注册到页面中
用于判断是否已经注册过指定的脚本块
publicbool IsClientScriptBlockRegistered(
stringkey
)
将脚本块注册到页面中
publicvoidRegisterClientScriptBlock(
Typetype,
stringkey,
stringscript
)
启动脚本块
注册启动脚本块,一般用于将需要直接执行的JavaScript.语句注册到页面中
判断是否已经注册过指定的启动脚本块
publicbool IsStartupScriptRegistered(
stringkey
)
注册启动脚本块
publicvoidRegisterStartupScript(
Typetype,
stringkey,
stringscript
)
包含外部的脚本文件
判断是否已经注册过指定名称的脚本文件
publicbool IsClientScriptIncludeRegistered(
stringkey
)
注册包含外部的脚本文件
publicvoidRegisterClientScriptInclude(
stringkey,
stringurl
)
页面元素的属性
为页面元素定义新的属性并赋值
publicvoidRegisterExpandoAttribute(
stringcontrolId,
stringattributeName,
stringattributeValue
)
controlId 页面元素的ID
attributeName 新增加的属性名称
attributeValue 属性的值
隐藏域
在页面中增加隐藏域
publicvoidRegisterHiddenField(
stringhiddenFieldName,
stringhiddenFieldInitialValue
)
hiddenFieldName 隐藏域的名字
hiddenFieldInitialValue 隐藏域的值
注册当执行表单提交动作时执行的脚本
publicvoidRegisterOnSubmitStatement(
Typetype,
stringkey,
stringscript
)
在页面中生成javascript.:__doPostBack(元素ID,参数)的脚本
publicstring GetPostBackClientHyperlink(
Controlcontrol,
stringargument
)
与前面相比,没有javascript.前缀,用于客户端脚本编程中,生成一个用来回发请求道服务器的脚本字符串。
publicstring GetPostBackEventReference(
Controlcontrol,
stringargument
)
资源
生成到编译到程序集中的资源的链接
publicstring GetWebResourceUrl(
Typetype,
stringresourceName
)
资源可以是脚本文件,图片文件或者任何其它的静态文件。这个方法常常和下面的RegisterClientScriptResource方法联合使用。
注册已经编译到程序集中的JavaScript.资源文件嵌入到页面中
publicvoidRegisterClientScriptResource(
Typetype,
stringresourceName
)
附
在程序集中加入资源的方法:
1. 将文件包含在项目中
2. 选择该文件的属性,将“生成操作”属性设为“嵌入的资源”。
3. 注意此资源的名称前面会自动加上默认的命名空间,比如项目的默认命名空间为com.myspace,此文件为jQuery.js,如果此文件加入到项目的根目录,则资源名称为com.myspace.jQuery.js。如果被加入到项目的子文件夹中,还有再加上子文件的名称,例如:如果加入到项目根目录下的Scripts子文件夹中,则资源的名称变为:com.myspace.Scripts.jQuery.js。
4. 为程序集标注包含资源的程序集,可以有两种方法:
a) 在assembly.cs中,增加一个标签
[assembly.WebResource[“资源名称”, “类型”]
b) 在项目的任何一个cs文件中,在命名空间之外增加
[assembly.WebResource[“资源名称”, “类型”]
5. 使用GetWebResourceUrl可以得到基于WebResource.axd的访问路径。