다음을 통해 공유


ClientScriptManager 클래스

정의

웹 애플리케이션에서 클라이언트 스크립트를 관리하기 위한 메서드를 정의합니다.

public ref class ClientScriptManager sealed
public sealed class ClientScriptManager
type ClientScriptManager = class
Public NotInheritable Class ClientScriptManager
상속
ClientScriptManager

예제

다음 코드 예제에서는 클래스의 메서드를 RegisterClientScriptBlock 사용하는 방법을 보여 줍니다 ClientScriptManager . 페이지에 PopupScript두 개의 클라이언트 스크립트가 정의됩니다. 즉, 페이지가 로드될 때 경고 메시지를 표시하고 ButtonClickScriptHTML 단추 onClick 이벤트에 대한 클라이언트 처리기를 정의합니다.

<%@ 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 는 클라이언트 스크립트를 관리하고 웹 애플리케이션에 추가하는 데 사용됩니다. 개체의 속성에서 클래스에 대한 참조 ClientScriptManagerClientScriptPage 가져올 수 있습니다.

페이지의 HTML 태그에 스크립트를 포함하여 선언적으로 웹 페이지에 클라이언트 스크립트를 추가할 수 있습니다. 그러나 클라이언트 스크립트를 동적으로 추가해야 하는 경우가 있습니다. 스크립트를 동적으로 추가하려면 스크립트를 RegisterClientScriptBlockRegisterClientScriptIncludeRegisterStartupScript 추가할 시기와 방법에 따라 메서드, 메서드, 메서드 또는 RegisterOnSubmitStatement 메서드를 사용합니다. 자세한 내용은 방법: ASP.NET 웹 페이지에 동적으로 클라이언트 스크립트 추가를 참조하세요.

클래스는 ClientScriptManagerStringType으로 스크립트를 고유하게 식별합니다. 키와 형식이 같은 스크립트는 중복된 것으로 간주됩니다. 스크립트 유형을 사용하면 페이지에서 사용할 수 있는 다른 사용자 컨트롤의 유사한 스크립트를 혼동하지 않도록 방지할 수 있습니다.

이 클래스는 ClientScriptManager 포스트백을 수행하지 않고 클라이언트에서 서버 코드를 실행하는 것이 바람직한 상황에서 클라이언트 콜백을 호출하는 데 사용할 수 있습니다. 이를 서버에 대한 대역 외 콜백을 수행하는 것이라고 합니다. 클라이언트 콜백에서 클라이언트 스크립트 함수는 비동기 요청을 ASP.NET 웹 페이지로 보냅니다. 웹 페이지는 콜백을 처리하기 위해 수정된 버전의 일반 수명 주기를 실행합니다. GetCallbackEventReference 호출될 때 서버 이벤트에 대한 클라이언트 콜백을 시작하는 클라이언트 함수에 대한 참조를 가져오려면 이 메서드를 사용합니다. 자세한 내용은 Postback 없이 클라이언트 콜백 구현을 참조하세요.

메모

스크립트 콜백은 DOM(문서 개체 모델)을 지원하지 않는 이전 브라우저에서 작동하지 않으며 클라이언트에서 ECMAScript를 사용하도록 설정해야 합니다. 브라우저에서 콜백을 지원하는지 확인하려면 ASP.NET 내장 Request 개체의 속성을 통해 Browser 액세스할 수 있는 속성을 사용합니다SupportsCallback.

GetPostBackEventReference 메서드와 메서드를 GetPostBackClientHyperlink 사용하여 클라이언트 포스트백 이벤트를 정의합니다. 이러한 메서드를 사용하면 클라이언트 스크립트 함수가 호출될 때 서버가 페이지에 다시 게시되도록 할 수 있습니다. 클라이언트 포스트백 이벤트는 웹 페이지가 클라이언트 포스트백 이벤트를 처리하는 정상적인 수명 주기를 완료한다는 측면에서 클라이언트 콜백과 다릅니다.

메모

컨트롤을 Button 사용하고 속성이 UseSubmitBehavior 설정된 false경우 메서드를 사용하여 컨트롤에 GetPostBackEventReference 대한 Button 클라이언트 포스트백 이벤트를 반환할 수 있습니다.

OnClientClick 컨트롤, ImageButton 컨트롤 및 LinkButton 컨트롤의 Button 속성을 사용하여 클라이언트 스크립트를 실행할 수 있습니다.

메서드

Name Description
Equals(Object)

지정된 개체가 현재 개체와 같은지 여부를 확인합니다.

(다음에서 상속됨 Object)
GetCallbackEventReference(Control, String, String, String, Boolean)

호출될 때 서버 이벤트에 대한 클라이언트 호출을 시작하는 클라이언트 함수에 대한 참조를 가져옵니다. 이 오버로드된 메서드의 클라이언트 함수에는 지정된 컨트롤, 인수, 클라이언트 스크립트, 컨텍스트 및 부울 값이 포함됩니다.

GetCallbackEventReference(Control, String, String, String, String, Boolean)

호출될 때 서버 이벤트에 대한 클라이언트 호출을 시작하는 클라이언트 함수에 대한 참조를 가져옵니다. 이 오버로드된 메서드의 클라이언트 함수에는 지정된 컨트롤, 인수, 클라이언트 스크립트, 컨텍스트, 오류 처리기 및 부울 값이 포함됩니다.

GetCallbackEventReference(Control, String, String, String)

호출될 때 서버 이벤트에 대한 클라이언트 호출을 다시 시작하는 클라이언트 함수에 대한 참조를 가져옵니다. 이 오버로드된 메서드의 클라이언트 함수에는 지정된 컨트롤, 인수, 클라이언트 스크립트 및 컨텍스트가 포함됩니다.

GetCallbackEventReference(String, String, String, String, String, Boolean)

호출될 때 서버 이벤트에 대한 클라이언트 호출을 시작하는 클라이언트 함수에 대한 참조를 가져옵니다. 이 오버로드된 메서드의 클라이언트 함수에는 지정된 대상, 인수, 클라이언트 스크립트, 컨텍스트, 오류 처리기 및 부울 값이 포함됩니다.

GetHashCode()

기본 해시 함수로 사용됩니다.

(다음에서 상속됨 Object)
GetPostBackClientHyperlink(Control, String, Boolean)

클라이언트 이벤트에서 지정된 이벤트 인수와 javascript: 이벤트 유효성 검사를 위해 포스트백을 등록할지 여부를 나타내는 부울 표시를 사용하여 지정된 컨트롤의 서버에 다시 게시하는 데 사용할 수 있는 참조를 시작 부분에 추가한 참조를 가져옵니다.

GetPostBackClientHyperlink(Control, String)

클라이언트 이벤트에서 지정된 컨트롤 및 지정된 이벤트 인수를 사용하여 서버에 다시 게시하는 데 사용할 수 있는 참조 javascript: 를 시작 부분에 추가한 참조를 가져옵니다.

GetPostBackEventReference(Control, String, Boolean)

서버에 포스트백을 발생시키는 클라이언트 이벤트에서 사용할 문자열을 반환합니다. 참조 문자열은 포스트백 및 추가 이벤트 정보의 문자열 인수를 처리하는 지정된 컨트롤에 의해 정의됩니다. 필요에 따라 유효성 검사를 위해 이벤트 참조를 등록합니다.

GetPostBackEventReference(Control, String)

서버에 포스트백을 발생시키는 클라이언트 이벤트에 사용할 수 있는 문자열을 반환합니다. 참조 문자열은 포스트백 및 추가 이벤트 정보의 문자열 인수를 처리하는 지정된 컨트롤에 의해 정의됩니다.

GetPostBackEventReference(PostBackOptions, Boolean)

서버에 포스트백을 발생시키는 클라이언트 이벤트에 사용할 수 있는 문자열을 반환합니다. 참조 문자열은 지정된 개체에 의해 정의됩니다 PostBackOptions . 필요에 따라 유효성 검사를 위해 이벤트 참조를 등록합니다.

GetPostBackEventReference(PostBackOptions)

서버에 포스트백을 발생시키는 클라이언트 이벤트에 사용할 수 있는 문자열을 반환합니다. 참조 문자열은 지정된 인스턴스에 의해 정의됩니다 PostBackOptions .

GetType()

현재 인스턴스의 Type 가져옵니다.

(다음에서 상속됨 Object)
GetWebResourceUrl(Type, String)

어셈블리의 리소스에 대한 URL 참조를 가져옵니다.

IsClientScriptBlockRegistered(String)

클라이언트 스크립트 블록이 지정된 키를 사용하여 개체에 Page 등록되는지 여부를 확인합니다.

IsClientScriptBlockRegistered(Type, String)

클라이언트 스크립트 블록이 키 및 형식을 사용하여 개체에 Page 등록되는지 여부를 결정합니다.

IsClientScriptIncludeRegistered(String)

지정된 키를 사용하여 클라이언트 스크립트 포함이 개체에 Page 등록되었는지 여부를 확인합니다.

IsClientScriptIncludeRegistered(Type, String)

키 및 형식을 사용하여 클라이언트 스크립트 포함이 개체에 Page 등록되는지 여부를 결정합니다.

IsOnSubmitStatementRegistered(String)

지정된 키를 사용하여 OnSubmit 문이 개체에 Page 등록되는지 여부를 확인합니다.

IsOnSubmitStatementRegistered(Type, String)

지정된 키와 형식을 사용하여 OnSubmit 문이 개체에 Page 등록되는지 여부를 결정합니다.

IsStartupScriptRegistered(String)

시작 스크립트가 지정된 키를 사용하여 개체에 Page 등록되는지 여부를 결정합니다.

IsStartupScriptRegistered(Type, String)

지정된 키와 형식을 사용하여 시작 스크립트가 개체에 Page 등록되는지 여부를 결정합니다.

MemberwiseClone()

현재 Object단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
RegisterArrayDeclaration(String, String)

배열 이름 및 배열 값을 사용하여 JavaScript 배열 선언을 Page 개체에 등록합니다.

RegisterClientScriptBlock(Type, String, String, Boolean)

스크립트 태그 Page 를 추가할지 여부를 나타내는 형식, 키, 스크립트 리터럴 및 부울 값을 사용하여 클라이언트 스크립트를 개체에 등록합니다.

RegisterClientScriptBlock(Type, String, String)

형식, 키 및 스크립트 리터럴을 Page 사용하여 개체에 클라이언트 스크립트를 등록합니다.

RegisterClientScriptInclude(String, String)

클라이언트에서 스크립트를 Page 호출할 수 있도록 하는 키 및 URL을 사용하여 개체에 클라이언트 스크립트를 등록합니다.

RegisterClientScriptInclude(Type, String, String)

형식, 키 및 URL을 사용하여 개체에 Page 클라이언트 스크립트 포함을 등록합니다.

RegisterClientScriptResource(Type, String)

형식 및 리소스 이름을 사용하여 클라이언트 스크립트 리소스 Page 를 개체에 등록합니다.

RegisterExpandoAttribute(String, String, String, Boolean)

컨트롤 ID, 특성 이름, 특성 값 및 특성 값을 인코딩할지 여부를 나타내는 부울 값을 지정한 컨트롤의 사용자 지정(expando) 특성으로 이름/값 쌍을 등록합니다.

RegisterExpandoAttribute(String, String, String)

컨트롤 ID, 특성 이름 및 특성 값이 지정된 경우 이름/값 쌍을 지정된 컨트롤의 사용자 지정(expando) 특성으로 등록합니다.

RegisterForEventValidation(PostBackOptions)

유효성 검사 PostBackOptions에 대한 이벤트 참조를 .에 등록합니다.

RegisterForEventValidation(String, String)

유효성 검사에 대한 이벤트 참조를 고유 컨트롤 ID 및 이벤트를 생성하는 클라이언트 컨트롤을 나타내는 이벤트 인수로 등록합니다.

RegisterForEventValidation(String)

유효성 검사에 대한 이벤트 참조를 이벤트를 생성하는 클라이언트 컨트롤을 나타내는 고유 컨트롤 ID로 등록합니다.

RegisterHiddenField(String, String)

숨겨진 값을 개체에 등록합니다 Page .

RegisterOnSubmitStatement(Type, String, String)

형식, 키 및 스크립트 리터럴을 Page 사용하여 OnSubmit 문을 개체에 등록합니다. 문이 제출될 때 HtmlForm 실행됩니다.

RegisterStartupScript(Type, String, String, Boolean)

스크립트 태그 Page 를 추가할지 여부를 나타내는 형식, 키, 스크립트 리터럴 및 부울 값을 사용하여 시작 스크립트를 개체에 등록합니다.

RegisterStartupScript(Type, String, String)

형식, 키 및 스크립트 리터럴을 사용하여 시작 스크립트 Page 를 개체에 등록합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)
ValidateEvent(String, String)

메서드를 사용하여 이벤트 유효성 검사를 위해 등록된 클라이언트 이벤트의 유효성을 RegisterForEventValidation(String, String) 검사합니다.

ValidateEvent(String)

메서드를 사용하여 이벤트 유효성 검사를 위해 등록된 클라이언트 이벤트의 유효성을 RegisterForEventValidation(String) 검사합니다.

적용 대상

추가 정보