冠军

导航

ASP.NET 中对 JavaScript 的支持

 

ASP.NET 中,System.Web.UI.ClientScriptManager 用来管理脚本,此类可以通过页面对象的 ClientScript 属性取得。通过这个对象可以管理网页中的脚本。

 

由于可能多次向同一个页面中加入脚本,或者需要检查页面中是否已经加入过脚本,ClientScriptManager 的许多方法使用了字典集合来进行检查,注册一个脚本内容的时候,需要提供一个字符串类型的资源名称,这个名称可以用来检查是否已经在页面中加入过同样的脚本。

 

从方法的用途可以分为两类,一类用于检查页面中是否已经加入过资源,这一类的方法以 IsRegister 开头,另一类用于在页面对象中注册脚本资源,这一类的方法以 Register开头。

 

根据注册的内容,我们还可以将这些方法分成如下的类别:

 

数组

定义 JavaScript 数组,生成一个 JavaScript 的数组到页面中。

JavaScript 程序中,可以如下定义数组

 

var arrayName = new Array() { 数组的初值 };

例如:

var myArray = new Array() { “One”, “Two”, “Three” };

 

public void RegisterArrayDeclaration(

       string arrayName,

       string arrayValue

)

 

参数:

arrayName:数组的名字

arrayValue:数组的值,用字符串表示,就是在 JavaScript 程序中定义在花括号内的内容

 

脚本块

 

注册脚本块,一般用于将 JavaScript 的函数注册到页面中

 

用于判断是否已经注册过指定的脚本块

public bool IsClientScriptBlockRegistered(

       string key

)

 

将脚本块注册到页面中

public void RegisterClientScriptBlock(

       Type type,

       string key,

       string script

)

 

启动脚本块

 

注册启动脚本块,一般用于将需要直接执行的 JavaScript 语句注册到页面中

 

判断是否已经注册过指定的启动脚本块

public bool IsStartupScriptRegistered(

       string key

)

 

注册启动脚本块

public void RegisterStartupScript(

       Type type,

       string key,

       string script

)

 

包含外部的脚本文件

 

判断是否已经注册过指定名称的脚本文件

public bool IsClientScriptIncludeRegistered(

       string key

)

 

注册包含外部的脚本文件

public void RegisterClientScriptInclude(

       string key,

       string url

)

 

页面元素的属性

 

为页面元素定义新的属性并赋值

public void RegisterExpandoAttribute(

       string controlId,

       string attributeName,

       string attributeValue

)

controlId               页面元素的 ID

attributeName        新增加的属性名称

attributeValue       属性的值

 

隐藏域

 

在页面中增加隐藏域

public void RegisterHiddenField(

       string hiddenFieldName,

       string hiddenFieldInitialValue

)

hiddenFieldName          隐藏域的名字

hiddenFieldInitialValue 隐藏域的值

 

注册当执行表单提交动作时执行的脚本

public void RegisterOnSubmitStatement(

       Type type,

       string key,

       string script

)

 

在页面中生成 javascript:__doPostBack( 元素ID, 参数 ) 的脚本

 

public string GetPostBackClientHyperlink(

       Control control,

       string argument

)

 

与前面相比,没有 javascript: 前缀,用于客户端脚本编程中,生成一个用来回发请求道服务器的脚本字符串。

public string GetPostBackEventReference(

       Control control,

       string argument

)

 

资源

 

生成到编译到程序集中的资源的链接

public string GetWebResourceUrl(

       Type type,

       string resourceName

)

资源可以是脚本文件,图片文件或者任何其它的静态文件。这个方法常常和下面的 RegisterClientScriptResource 方法联合使用。

 

注册已经编译到程序集中的 JavaScript 资源文件嵌入到页面中

public void RegisterClientScriptResource(

       Type type,

       string resourceName

)

 

在程序集中加入资源的方法:

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 的访问路径。

posted on 2008-10-12 23:04  冠军  阅读(1726)  评论(3编辑  收藏  举报