ClientScriptManager 类

在 Web 应用程序中定义用于管理客户端脚本的方法。

System.Object 
   System.Web.UI.ClientScriptManager

命名空间:    System.Web.UI
程序集:    System.Web (在 System.Web.dll 中)
public sealed class ClientScriptManager

ClientScriptManager 类型公开以下成员。

  名称 说明
公共方法 Equals(Object) 确定指定的 Object 是否等于当前的 Object(继承自 Object。)
受保护的方法 Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
公共方法 GetCallbackEventReference(Control, String, String, String) 获取一个对客户端函数的引用;调用该函数时,将启动一个对服务器事件的客户端回调。 此重载方法的客户端函数包含指定的控件、参数、客户端脚本和上下文。
公共方法 GetCallbackEventReference(Control, String, String, String, Boolean) 获取一个对客户端函数的引用;调用该函数时,将启动一个对服务器事件的客户端回调。 此重载方法的客户端函数包含指定的控件、参数、客户端脚本、上下文和布尔值。
公共方法 GetCallbackEventReference(Control, String, String, String, String, Boolean) 获取一个对客户端函数的引用;调用该函数时,将启动一个对服务器事件的客户端回调。 此重载方法的客户端函数包含指定的控件、参数、客户端脚本、上下文、错误处理程序和布尔值。
公共方法 GetCallbackEventReference(String, String, String, String, String, Boolean) 获取一个对客户端函数的引用;调用该函数时,将启动一个对服务器事件的客户端回调。 此重载方法的客户端函数包含指定的目标、参数、客户端脚本、上下文、错误处理程序和布尔值。
公共方法 GetHashCode 用作特定类型的哈希函数。 (继承自Object。)
公共方法 GetPostBackClientHyperlink(Control, String) 获取一个引用,并在其开头附加javascript:,可以在客户端事件中使用该引用,并将该引用与指定的事件参数一起使用,以便回发到指定控件的服务器。
公共方法 GetPostBackClientHyperlink(Control, String, Boolean) 获取一个引用,并在其开头附加javascript:,该引用可用于在客户端事件中回发到指定控件的服务器,回发时使用指定的事件参数和一个指示是否为事件验证注册该回发的布尔值。
公共方法 GetPostBackEventReference(PostBackOptions) 返回一个可以在客户端事件中使用的字符串,以便回发到服务器。 该引用字符串由指定的PostBackOptions 实例定义。
公共方法 GetPostBackEventReference(Control, String) 返回一个可以在客户端事件中使用的字符串,以便回发到服务器。 该引用字符串由处理回发的指定控件和一个附加事件信息的字符串参数定义。
公共方法 GetPostBackEventReference(PostBackOptions, Boolean) 返回一个可以在客户端事件中使用的字符串,以便回发到服务器。 该引用字符串由指定的PostBackOptions 对象定义。 或者,可选择为验证注册事件引用。
公共方法 GetPostBackEventReference(Control, String, Boolean) 返回一个在客户端事件中使用的字符串,以便回发到服务器。 该引用字符串由处理回发的指定控件和一个附加事件信息的字符串参数定义。或者,可选择为验证注册事件引用。
公共方法 GetType 获取当前实例的 Type (继承自 Object。)
公共方法 GetWebResourceUrl 获取对程序集内资源的 URL 引用。
公共方法 IsClientScriptBlockRegistered(String) 使用指定键确定 Page 对象是否注册了客户端脚本块。
公共方法 IsClientScriptBlockRegistered(Type, String) 使用键和类型确定 Page 对象是否注册了客户端脚本块。
公共方法 IsClientScriptIncludeRegistered(String) 使用指定键确定 Page 对象是否注册了客户端脚本包含。
公共方法 IsClientScriptIncludeRegistered(Type, String) 使用键和类型确定 Page 对象是否注册了客户端脚本包含。
公共方法 IsOnSubmitStatementRegistered(String) 确定 Page 对象是否使用指定键注册了 OnSubmit 语句。
公共方法 IsOnSubmitStatementRegistered(Type, String) 确定 Page 对象是否使用指定的键和类型注册了 OnSubmit 语句。
公共方法 IsStartupScriptRegistered(String) 使用指定键确定 Page 对象是否注册了启动脚本。
公共方法 IsStartupScriptRegistered(Type, String) 使用指定键和类型确定 Page 对象是否注册了启动脚本。
受保护的方法 MemberwiseClone 创建当前 Object 的浅表副本。 (继承自Object。)
公共方法 RegisterArrayDeclaration 使用数组名称和数组值向 Page 对象注册 JavaScript 数组声明。
公共方法 RegisterClientScriptBlock(Type, String, String) 使用类型、键和脚本文本向 Page 对象注册客户端脚本。
公共方法 RegisterClientScriptBlock(Type, String, String, Boolean) 使用类型、键、脚本文本和指示是否添加脚本标记的布尔值向 Page 对象注册客户端脚本。
公共方法 RegisterClientScriptInclude(String, String) 使用让客户端能够调用脚本的键和 URL 向Page 对象注册客户端脚本。
公共方法 RegisterClientScriptInclude(Type, String, String) 使用类型、键和 URL 向 Page 对象注册客户端脚本包含。
公共方法 RegisterClientScriptResource 使用类型和资源名向 Page 对象注册客户端脚本资源。
公共方法 RegisterExpandoAttribute(String, String, String) 将名称/值对注册为给定控件 ID、特性名和特性值的指定控件的自定义 (expando) 特性。
公共方法 RegisterExpandoAttribute(String, String, String, Boolean) 给定控件 ID、特性名称、特性值以及指示是否对特性值进行编码的布尔值,将名称/值对注册为指定控件的自定义 (expando) 特性。
公共方法 RegisterForEventValidation(PostBackOptions) 通过 PostBackOptions 为验证注册事件引用。
公共方法 RegisterForEventValidation(String) 使用表示生成事件的客户端控件的唯一控件 ID 为验证注册事件引用。
公共方法 RegisterForEventValidation(String, String) 使用表示生成事件的客户端控件的唯一控件 ID 和事件参数为验证注册事件引用。
公共方法 RegisterHiddenField 向 Page 对象注册一个隐藏值。
公共方法 RegisterOnSubmitStatement 使用类型、键和脚本文本向 Page 对象注册 OnSubmit 语句。 该语句在提交 HtmlForm 时执行。
公共方法 RegisterStartupScript(Type, String, String) 使用类型、键和脚本文本向 Page 对象注册启动脚本。
公共方法 RegisterStartupScript(Type, String, String, Boolean) 使用类型、键、脚本文本和指示是否添加脚本标记的布尔值向 Page 对象注册启动脚本。
公共方法 ToString 返回表示当前对象的字符串。 (继承自Object。)
公共方法 ValidateEvent(String) 验证使用 RegisterForEventValidation 方法为事件验证注册的客户端事件。
公共方法 ValidateEvent(String, String) 验证使用 RegisterForEventValidation 方法为事件验证注册的客户端事件。
页首

ClientScriptManager 类用于管理客户端脚本并将它们添加到 Web 应用程序中。 可以从 Page 对象的ClientScript 属性获取对 ClientScriptManager 类的引用。

通过在网页的 HTML 标记中包含脚本,可以声明方式向网页添加客户端脚本。 然而,有些情况下需要动态添加客户端脚本。 若要动态添加脚本,根据您想添加脚本的时间及方式,使用 RegisterClientScriptBlock 方法、RegisterClientScriptInclude 方法、RegisterStartupScript 方法或 RegisterOnSubmitStatement 方法。 有关更多信息,请参见 如何:向 ASP.NET 网页动态添加客户端脚本

ClientScriptManager 类通过键 String 和 Type 唯一地标识脚本。 具有相同的键和类型的脚本被视为重复脚本。使用脚本类型有助于避免混淆可能用在页中的来自不同用户控件的相似脚本。

在期望不执行回发而从客户端运行服务器代码的情况下,可以使用 ClientScriptManager 类来调用客户端回调。 这称为对服务器执行带外回调。 在客户端回调中,客户端脚本函数向 ASP.NET 网页发送异步请求。 网页修改其正常生命周期来处理回调。 使用 GetCallbackEventReference 方法获取一个对客户端函数的引用,当调用该函数时,它将启动一个对服务器端事件的客户端回调。 有关更多信息,请参见 在 ASP.NET 网页中不经过回发而以编程方式实现客户端回调

注意 注意

脚本回调不能在不支持文档对象模型 (DOM) 的较早浏览器中使用,并且它们要求客户端启用 ECMAScript。 若要检查浏览器是否支持回调,请使用 SupportsCallback 属性,该属性可以通过 ASP.NET Request 内部对象的Browser 属性访问。

使用 GetPostBackEventReference 方法和 GetPostBackClientHyperlink 方法定义客户端回发事件。 这些方法启用客户端脚本函数,在调用这些函数时,它们将促使服务器向该页回发。 客户端回发与客户端回调的区别在于网页处理客户端回发事件要用完一个正常的生命周期。

注意 注意

如果您在使用 Button 控件且 UseSubmitBehavior 属性设置为 false,则可以使用GetPostBackEventReference 方法返回 Button 控件的客户端回发事件。

可以使用 Button 控件、ImageButton 控件和 LinkButton 控件的 OnClientClick 属性来运行客户端脚本。

下面的代码示例演示如何使用 ClientScriptManager 类的 RegisterClientScriptBlock 方法。 该页中定义了两个客户端脚本:PopupScript(在加载页时显示警报消息)和 ButtonClickScript(定义 HTML 按钮的 onClick 事件的客户端处理程序)。

C#
VB
<%@ Page Language="C#"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
  public void Page_Load(Object sender, EventArgs e)
  {
    // Define the name and type of the client scripts on the page.
    String csname1 = "PopupScript";
    String csname2 = "ButtonClickScript";
    Type cstype = this.GetType();

    // Get a ClientScriptManager reference from the Page class.
    ClientScriptManager cs = Page.ClientScript;

    // Check to see if the startup script is already registered.
    if (!cs.IsStartupScriptRegistered(cstype, csname1))
    {
      String cstext1 = "alert('Hello World');";
      cs.RegisterStartupScript(cstype, csname1, cstext1, true);
    }

    // Check to see if the client script is already registered.
    if (!cs.IsClientScriptBlockRegistered(cstype, csname2))
    {
      StringBuilder cstext2 = new StringBuilder();
      cstext2.Append("<script type=\"text/javascript\"> function DoClick() {");
      cstext2.Append("Form1.Message.value='Text from client script.'} </");
      cstext2.Append("script>");
      cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), false);
    }
  }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ClientScriptManager Example</title>
  </head>
  <body>
     <form id="Form1"
         runat="server">
        <input type="text" id="Message" /> <input type="button" value="ClickMe" οnclick="DoClick()" />
     </form>
  </body>
</html>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值