티스토리 뷰

💼 정보 ver1.0

ClientScriptManager 클래스

James Wetzel 2009. 2. 26. 20:20
728x90
반응형

시나리오

참고: 이 클래스는 .NET Framework 버전 2.0에서 새로 추가되었습니다.

웹 응용 프로그램에서 클라이언트측 스크립트를 관리하는 메서드를 정의합니다.

네임스페이스: System.Web.UI
어셈블리: System.Web(system.web.dll)

정보

ClientScriptManager 클래스는 클라이언트 스크립트를 관리하고 웹 응용 프로그램에 추가하는 데 사용됩니다. Page 개체의 ClientScript 속성에서 ClientScriptManager 클래스에 대한 참조를 가져올 수 있습니다.

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

ClientScriptManager 클래스에서는 String 키와 Type으로 스크립트를 고유하게 식별합니다. 키 및 형식이 같은 스크립트는 중복된 것으로 간주됩니다. 페이지에서 사용할 수 있는 여러 사용자 정의 컨트롤의 유사한 스크립트를 서로 혼동하지 않도록 하는 데 도움이 됩니다.

ClientScriptManager 클래스는 다시 게시를 수행하지 않고 클라이언트에서 서버 코드를 실행하는 편이 나은 경우에 클라이언트 콜백을 호출하는 데 사용됩니다. 클라이언트 콜백 호출은 서버에 대한 out-of-band 콜백을 수행하는 것을 의미합니다. 클라이언트 콜백에서 클라이언트 스크립트 함수는 ASP.NET 웹 페이지로 비동기 요청을 보냅니다. 웹 페이지에서는 해당 페이지의 정상 수명 주기의 수정된 버전을 실행하여 콜백을 처리합니다. 호출될 경우 클라이언트에서 서버 이벤트를 콜백하도록 하는 클라이언트 함수에 대한 참조를 가져오려면 GetCallbackEventReference 메서드를 사용합니다. 자세한 내용은 ASP.NET 웹 페이지에서 다시 게시하지 않는 클라이언트 콜백을 프로그래밍 방식으로 구현을 참고하십시오.

비고
<%@ 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>


728x90
반응형