ClientScriptManager.IsClientScriptBlockRegistered 메서드

정의

클라이언트 스크립트 블록이 개체에 등록되어 Page 있는지 여부를 확인합니다.

오버로드

Name Description
IsClientScriptBlockRegistered(String)

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

IsClientScriptBlockRegistered(Type, String)

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

IsClientScriptBlockRegistered(String)

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

public:
 bool IsClientScriptBlockRegistered(System::String ^ key);
public bool IsClientScriptBlockRegistered(string key);
member this.IsClientScriptBlockRegistered : string -> bool
Public Function IsClientScriptBlockRegistered (key As String) As Boolean

매개 변수

key
String

검색할 클라이언트 스크립트 블록의 키입니다.

반품

true클라이언트 스크립트 블록이 등록되면 이고, 그렇지 않으면 . false

예제

<%@ 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);
    }

    // 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());
    }
  }
</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)
      
    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())
      
    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>

설명

중복 스크립트를 등록하지 않도록 메서드를 RegisterClientScriptBlock 호출하기 전에 이 메서드를 호출합니다. 스크립트에서 만드는 데 많은 양의 서버 리소스가 필요한 경우 특히 중요합니다.

클라이언트 스크립트는 키와 해당 형식으로 고유하게 식별됩니다. 키와 형식이 같은 스크립트는 중복된 것으로 간주됩니다.

메서드의 IsClientScriptBlockRegistered 이 오버로드는 형식이 개체로 설정된 a keytype 매개 변수를 모두 사용하는 오버로드를 Page 호출합니다.

추가 정보

적용 대상

IsClientScriptBlockRegistered(Type, String)

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

public:
 bool IsClientScriptBlockRegistered(Type ^ type, System::String ^ key);
public bool IsClientScriptBlockRegistered(Type type, string key);
member this.IsClientScriptBlockRegistered : Type * string -> bool
Public Function IsClientScriptBlockRegistered (type As Type, key As String) As Boolean

매개 변수

type
Type

검색할 클라이언트 스크립트 블록의 형식입니다.

key
String

검색할 클라이언트 스크립트 블록의 키입니다.

반품

true클라이언트 스크립트 블록이 등록되면 이고, 그렇지 않으면 . false

예외

클라이언트 스크립트 유형은 null.

예제

다음 코드 예제에서는 메서드의 사용을 보여 줍니다 IsClientScriptBlockRegistered . 기존 클라이언트 스크립트 블록을 확인하는 논리가 제거된 경우 메서드가 중복을 확인하므로 렌더링된 페이지의 HTML 소스 코드에는 두 개의 중복 클라이언트 스크립트가 RegisterClientScriptBlock 없습니다. 검사의 이점은 불필요한 계산을 줄이는 것입니다.

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

설명

중복 스크립트를 등록하지 않도록 메서드를 RegisterClientScriptBlock 호출하기 전에 이 메서드를 호출합니다. 스크립트에서 만드는 데 많은 양의 서버 리소스가 필요한 경우 특히 중요합니다.

클라이언트 스크립트는 키와 해당 형식으로 고유하게 식별됩니다. 키와 형식이 같은 스크립트는 중복된 것으로 간주됩니다. 리소스에 액세스할 개체에 따라 형식을 지정합니다. 예를 들어 인스턴스를 Page 사용하여 리소스에 액세스하는 경우 형식을 지정합니다 Page .

추가 정보

적용 대상