다음을 통해 공유


ScriptManager.RegisterClientScriptBlock 메서드

정의

클라이언트 스크립트 블록을 ScriptManager 컨트롤 내부에 UpdatePanel 있는 컨트롤에 사용할 컨트롤에 등록한 다음 스크립트 블록을 페이지에 추가합니다.

오버로드

Name Description
RegisterClientScriptBlock(Control, Type, String, String, Boolean)

클라이언트 스크립트 블록을 ScriptManager 컨트롤 내부에 UpdatePanel 있는 컨트롤에 사용할 컨트롤에 등록한 다음 스크립트 블록을 페이지에 추가합니다.

RegisterClientScriptBlock(Page, Type, String, String, Boolean)

클라이언트 스크립트 블록을 ScriptManager 컨트롤 내부에 UpdatePanel 있는 컨트롤에 사용할 컨트롤에 등록한 다음 스크립트 블록을 페이지에 추가합니다.

RegisterClientScriptBlock(Control, Type, String, String, Boolean)

클라이언트 스크립트 블록을 ScriptManager 컨트롤 내부에 UpdatePanel 있는 컨트롤에 사용할 컨트롤에 등록한 다음 스크립트 블록을 페이지에 추가합니다.

public:
 static void RegisterClientScriptBlock(System::Web::UI::Control ^ control, Type ^ type, System::String ^ key, System::String ^ script, bool addScriptTags);
public static void RegisterClientScriptBlock(System.Web.UI.Control control, Type type, string key, string script, bool addScriptTags);
static member RegisterClientScriptBlock : System.Web.UI.Control * Type * string * string * bool -> unit
Public Shared Sub RegisterClientScriptBlock (control As Control, type As Type, key As String, script As String, addScriptTags As Boolean)

매개 변수

control
Control

클라이언트 스크립트 블록을 등록하는 컨트롤입니다.

type
Type

클라이언트 스크립트 블록의 형식입니다. 이 매개 변수는 일반적으로 연산자(C#) 또는 GetType 연산자(Visual Basic)를 사용하여 typeof 스크립트를 등록하는 컨트롤의 형식을 검색하여 지정됩니다.

key
String

스크립트 블록의 고유 식별자입니다.

script
String

스크립트입니다.

addScriptTags
Boolean

true 스크립트 블록을 <script> 묶고 태그를 지정하려면 이고 </script> , false그렇지 않으면 .

예외

클라이언트 스크립트 블록 type 은 .입니다 null.

-또는-

스크립트 블록을 등록하는 컨트롤은 .입니다 null.

스크립트 블록을 등록하는 컨트롤이 페이지의 컨트롤 트리에 없습니다.

예제


<%@ 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">
    protected void Page_PreRender(object sender, EventArgs e)
    {
        string script = @"
        function ToggleItem(id)
          {
            var elem = $get('div'+id);
            if (elem) 
            {
              if (elem.style.display != 'block') 
              {
                elem.style.display = 'block';
                elem.style.visibility = 'visible';
              } 
              else
              {
                elem.style.display = 'none';
                elem.style.visibility = 'hidden';
              }
            }
          }
        ";

        ScriptManager.RegisterClientScriptBlock(
            this,
            typeof(Page),
            "ToggleScript",
            script,
            true);
    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>ScriptManager RegisterClientScriptInclude</title>
</head>
<body>
    <form id="Form1" runat="server">
        <div>
            <br />
            <asp:ScriptManager ID="ScriptManager1" 
                                 EnablePartialRendering="true"
                                 runat="server">
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" 
                               UpdateMode="Conditional"
                               runat="server">
                <ContentTemplate>
                    <asp:XmlDataSource ID="XmlDataSource1"
                                       DataFile="~/App_Data/Contacts.xml"
                                       XPath="Contacts/Contact"
                                       runat="server"/>
                    <asp:DataList ID="DataList1" DataSourceID="XmlDataSource1"
                        BackColor="White" BorderColor="#E7E7FF" BorderStyle="None"
                        BorderWidth="1px" CellPadding="3" GridLines="Horizontal"
                        runat="server">
                        <ItemTemplate>
                            <div style="font-size:larger; font-weight:bold; cursor:pointer;" 
                                 onclick='ToggleItem(<%# Eval("ID") %>);'>
                                <span><%# Eval("Name") %></span>
                            </div>
                            <div id='div<%# Eval("ID") %>' 
                                 style="display: block; visibility: visible;">
                                <span><%# Eval("Company") %></span>
                                <br />
                                <a href='<%# Eval("URL") %>' 
                                   target="_blank" 
                                   title='<%# Eval("Name", "Link to the {0} Web site") %>'>
                                   <%# Eval("URL") %></a>
                                </asp:LinkButton>
                                <hr />
                            </div>
                        </ItemTemplate>
                        <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
                        <SelectedItemStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
                        <AlternatingItemStyle BackColor="#F7F7F7" />
                        <ItemStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
                        <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
                    </asp:DataList>
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
    </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_PreRender(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim script As String
        script = _
        "function ToggleItem(id)" & _
        "  {" & _
        "    var elem = $get('div'+id);" & _
        "    if (elem)" & _
        "    {" & _
        "      if (elem.style.display != 'block') " & _
        "      {" & _
        "        elem.style.display = 'block';" & _
        "        elem.style.visibility = 'visible';" & _
        "      } " & _
        "      else" & _
        "      {" & _
        "        elem.style.display = 'none';" & _
        "        elem.style.visibility = 'hidden';" & _
        "      }" & _
        "    }" & _
        "  }"
        
        ScriptManager.RegisterClientScriptBlock( _
            Me, _
            GetType(Page), _
            "ToggleScript", _
            script, _
            True)

    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>ScriptManager RegisterClientScriptInclude</title>
</head>
<body>
    <form id="Form1" runat="server">
        <div>
            <br />
            <asp:ScriptManager ID="ScriptManager1" 
                                 EnablePartialRendering="true"
                                 runat="server">
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" 
                               UpdateMode="Conditional"
                               runat="server">
                <ContentTemplate>
                    <asp:XmlDataSource ID="XmlDataSource1"
                                       DataFile="~/App_Data/Contacts.xml"
                                       XPath="Contacts/Contact"
                                       runat="server"/>
                    <asp:DataList ID="DataList1" DataSourceID="XmlDataSource1"
                        BackColor="White" BorderColor="#E7E7FF" BorderStyle="None"
                        BorderWidth="1px" CellPadding="3" GridLines="Horizontal"
                        runat="server">
                        <ItemTemplate>
                            <div style="font-size:larger; font-weight:bold; cursor:pointer;" 
                                 onclick='ToggleItem(<%# Eval("ID") %>);'>
                                <span><%# Eval("Name") %></span>
                            </div>
                            <div id='div<%# Eval("ID") %>' 
                                 style="display: block; visibility: visible;">
                                <span><%# Eval("Company") %></span>
                                <br />
                                <a href='<%# Eval("URL") %>' 
                                   target="_blank" 
                                   title='<%# Eval("Name", "Link to the {0} Web site") %>'>
                                   <%# Eval("URL") %></a>
                                </asp:LinkButton>
                                <hr />
                            </div>
                        </ItemTemplate>
                        <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
                        <SelectedItemStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
                        <AlternatingItemStyle BackColor="#F7F7F7" />
                        <ItemStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
                        <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
                    </asp:DataList>
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
    </form>
</body>
</html>
<Contacts>
    <Contact id="1" 
             Name="Aaber, Jesper" 
             Company="A. Data Corporation" 
             URL="http://www.adatum.com/"/>
    <Contact id="2" 
             Name="Canel, Fabrice" 
             Company="Coho Winery" 
             URL="http://www.cohowinery.com/"/>
    <Contact id="3" 
             Name="Heloo, Waleed" 
             Company="Contoso, Ltd" 
             URL="http://www.contoso.com/"/>
    <Contact id="4" 
             Name="Rovik, Dag" 
             Company="Wingtip Toys" 
             URL="http://www.wingtiptoys.com/"/>
</Contacts>

설명

이 메서드를 RegisterClientScriptBlock 사용하여 부분 페이지 렌더링과 호환되고 Microsoft Ajax 라이브러리 종속성이 없는 클라이언트 스크립트 블록을 등록합니다. 이 메서드를 사용하여 등록된 클라이언트 스크립트 블록은 업데이트되는 컨트롤 내부에 있는 컨트롤을 나타내는 경우에만 control 페이지로 UpdatePanel 전송됩니다. 비동기 포스트백이 발생할 때마다 스크립트 블록을 등록하려면 이 메서드의 오버로드를 RegisterClientScriptBlock(Page, Type, String, String, Boolean) 사용합니다.

부분 페이지 업데이트와 관련이 없는 스크립트 블록을 등록하고 초기 페이지 렌더링 중에 스크립트 블록을 한 번만 등록하려면 클래스의 메서드를 ClientScriptManager 사용합니다RegisterClientScriptBlock. 페이지의 속성에서 개체에 ClientScriptManager 대한 참조를 ClientScript 가져올 수 있습니다.

이 경우 addScriptTags 메서드는 RegisterClientScriptBlock 스크립트 블록 주위에 태그를 추가합니다<script>.true 특정 <script> 태그의 특성을 설정하려는 경우와 같이 태그를 직접 만들 <script> 려는 경우 전달 false 합니다. 있는 false 경우 매개 변수에 script 여러 스크립트 블록이 포함되어 있으면 addScriptTags 예외가 throw됩니다.

이 메서드는 여 <form>RegisterClientScriptBlock 태그 뒤의 페이지에 스크립트 블록을 추가합니다. 스크립트 블록은 등록된 순서와 동일한 순서로 출력되도록 보장되지 않습니다. 스크립트 블록의 순서가 중요한 경우 스크립트 블록을 단일 문자열(예: 개체 사용 StringBuilder )에 연결한 다음 단일 클라이언트 스크립트 블록으로 등록합니다.

추가 정보

적용 대상

RegisterClientScriptBlock(Page, Type, String, String, Boolean)

클라이언트 스크립트 블록을 ScriptManager 컨트롤 내부에 UpdatePanel 있는 컨트롤에 사용할 컨트롤에 등록한 다음 스크립트 블록을 페이지에 추가합니다.

public:
 static void RegisterClientScriptBlock(System::Web::UI::Page ^ page, Type ^ type, System::String ^ key, System::String ^ script, bool addScriptTags);
public static void RegisterClientScriptBlock(System.Web.UI.Page page, Type type, string key, string script, bool addScriptTags);
static member RegisterClientScriptBlock : System.Web.UI.Page * Type * string * string * bool -> unit
Public Shared Sub RegisterClientScriptBlock (page As Page, type As Type, key As String, script As String, addScriptTags As Boolean)

매개 변수

page
Page

클라이언트 스크립트 블록을 등록하는 페이지 개체입니다.

type
Type

클라이언트 스크립트 블록의 형식입니다. 이 매개 변수는 일반적으로 연산자(C#) 또는 GetType 연산자(Visual Basic)를 사용하여 typeof 스크립트를 등록하는 컨트롤의 형식을 검색하여 지정됩니다.

key
String

스크립트 블록의 고유 식별자입니다.

script
String

등록할 스크립트입니다.

addScriptTags
Boolean

true 스크립트 블록을 <script> 묶고 태그를 지정하려면 이고 </script> , false그렇지 않으면 .

예외

스크립트 블록 type 은 .입니다 null.

-또는-

스크립트 블록을 등록하는 페이지는 다음과 입니다 null.

설명

이 메서드를 사용하여 스크립트 블록을 등록하면 비동기 포스트백이 발생할 때마다 스크립트가 렌더링됩니다. 컨트롤이 업데이트될 때만 스크립트가 등록되도록 컨트롤 내에 UpdatePanel 있는 컨트롤에 UpdatePanel 대한 스크립트 블록을 등록하려면 이 메서드의 오버로드를 RegisterClientScriptBlock(Control, Type, String, String, Boolean) 사용합니다.

부분 페이지 업데이트와 관련이 없는 스크립트 블록을 등록하고 초기 페이지 렌더링 중에 스크립트 블록을 한 번만 등록하려면 클래스의 메서드를 ClientScriptManager 사용합니다RegisterClientScriptBlock. 페이지의 속성에서 개체에 ClientScriptManager 대한 참조를 ClientScript 가져올 수 있습니다.

추가 정보

적용 대상