ClientScriptManager 类

定义

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

public ref class ClientScriptManager sealed
public sealed class ClientScriptManager
type ClientScriptManager = class
Public NotInheritable Class ClientScriptManager
继承
ClientScriptManager

示例

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

<%@ 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" onclick="DoClick()" />
     </form>
  </body>
</html>
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

    ' Define the name and type of the client scripts on the page.
    Dim csname1 As String = "PopupScript"
    Dim csname2 As String = "ButtonClickScript"
    Dim cstype As Type = Me.GetType()
    
    ' Get a ClientScriptManager reference from the Page class.
    Dim cs As ClientScriptManager = Page.ClientScript

    ' Check to see if the startup script is already registered.
    If (Not cs.IsStartupScriptRegistered(cstype, csname1)) Then
      
      Dim cstext1 As String = "alert('Hello World');"
      cs.RegisterStartupScript(cstype, csname1, cstext1, True)
      
    End If
    
    ' Check to see if the client script is already registered.
    If (Not cs.IsClientScriptBlockRegistered(cstype, csname2)) Then
      
      Dim cstext2 As 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)
      
    End If
    
  End Sub
  
</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" onclick="DoClick()" />
     </form>
  </body>
</html>

注解

ClientScriptManager 用于管理客户端脚本并将其添加到 Web 应用程序。 可以从 对象的 属性获取对 ClientScriptManagerClientScriptPage 引用。

可以通过将脚本包含在页面的 HTML 标记中,以声明方式将客户端脚本添加到网页。 但是,在某些情况下需要动态添加客户端脚本。 若要动态添加脚本,请使用 RegisterClientScriptBlock 方法、 RegisterClientScriptInclude 方法、 RegisterStartupScript 方法或 RegisterOnSubmitStatement 方法,具体取决于要添加脚本的时间和方式。 有关详细信息,请参阅如何:将客户端脚本动态添加到 ASP.NET 网页

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

ClientScriptManager 可用于在需要从客户端运行服务器代码而不执行回发的情况下调用客户端回调。 这称为对服务器执行带外回调。 在客户端回调中,客户端脚本函数将异步请求发送到 ASP.NET 网页。 网页运行其正常生命周期的修改版本来处理回调。 GetCallbackEventReference使用 方法获取对客户端函数的引用,该函数在调用时会启动对服务器事件的客户端回调。 有关详细信息,请参阅 实现不带回发的客户端回调

备注

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

GetPostBackEventReference使用 方法和 GetPostBackClientHyperlink 方法定义客户端回发事件。 这些方法使客户端脚本函数在调用时能够使服务器发回到页面。 客户端回发事件不同于客户端回调,即网页完成正常的生命周期来处理客户端回发事件。

备注

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

控件OnClientClickImageButton控件和LinkButton控件的 Button 属性可用于运行客户端脚本。

方法

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 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(Control, String)

返回一个可以在客户端事件中使用的字符串,以便回发到服务器。 该引用字符串由处理回发的指定控件和一个附加事件信息的字符串参数定义。

GetPostBackEventReference(Control, String, Boolean)

返回一个在客户端事件中使用的字符串,以便回发到服务器。 该引用字符串由处理回发的指定控件和一个附加事件信息的字符串参数定义。 可选择为验证注册事件引用。

GetPostBackEventReference(PostBackOptions)

返回一个可以在客户端事件中使用的字符串,以便回发到服务器。 由指定的 PostBackOptions 实例定义的字符串。

GetPostBackEventReference(PostBackOptions, Boolean)

返回一个可以在客户端事件中使用的字符串,以便回发到服务器。 由指定的 PostBackOptions 对象定义的字符串。 可选择为验证注册事件引用。

GetType()

获取当前实例的 Type

(继承自 Object)
GetWebResourceUrl(Type, String)

获取对程序集内资源的 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(String, String)

使用数组名称和数组值向 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(Type, String)

使用类型和资源名向 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(String, String)

Page 对象注册一个隐藏值。

RegisterOnSubmitStatement(Type, String, String)

使用类型、键和脚本文本向 Page 对象注册 OnSubmit 语句。 该语句在提交 HtmlForm 时执行。

RegisterStartupScript(Type, String, String)

使用类型、键和脚本文本向 Page 对象注册启动脚本。

RegisterStartupScript(Type, String, String, Boolean)

使用类型、键、脚本文本和指示是否添加脚本标记的布尔值向 Page 对象注册启动脚本。

ToString()

返回表示当前对象的字符串。

(继承自 Object)
ValidateEvent(String)

验证使用 RegisterForEventValidation(String) 方法为事件验证注册的客户端事件。

ValidateEvent(String, String)

验证使用 RegisterForEventValidation(String, String) 方法为事件验证注册的客户端事件。

适用于

另请参阅