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

  • 相关阅读:
    JS来推断文本框内容改变事件
    LINQ To SQL 语法及实例大全
    linux-多线程
    BackTrack5 (BT5)无线password破解教程之WPA/WPA2-PSK型无线password破解
    用Jfree实现条形柱状图表,java代码实现
    OpenGL中glPushMatrix和glPopMatrix的原理
    C# 之 抽象类与接口
    Android漫游记(1)---内存映射镜像(memory maps)
    Web页面布局方式小结
    STL中主要的算法(一)
  • 原文地址:https://www.cnblogs.com/haogj/p/1309602.html
Copyright © 2020-2023  润新知