ScriptManager.RegisterClientScriptBlock メソッド

定義

UpdatePanel コントロール内のコントロールで使用できるようにクライアント スクリプト ブロックを ScriptManager コントロールに登録し、スクリプト ブロックをページに追加します。

オーバーロード

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

UpdatePanel コントロール内のコントロールで使用できるようにクライアント スクリプト ブロックを ScriptManager コントロールに登録し、スクリプト ブロックをページに追加します。

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

UpdatePanel コントロール内のコントロールで使用できるようにクライアント スクリプト ブロックを ScriptManager コントロールに登録し、スクリプト ブロックをページに追加します。

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

UpdatePanel コントロール内のコントロールで使用できるようにクライアント スクリプト ブロックを ScriptManager コントロールに登録し、スクリプト ブロックをページに追加します。

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

クライアント スクリプト ブロックの型。 このパラメーターは、通常、typeof 演算子 (C#) または GetType 演算子 (Visual Basic) を使用して指定され、スクリプトを登録するコントロールの型を取得します。

key
String

スクリプト ブロックの一意の識別子。

script
String

スクリプト。

addScriptTags
Boolean

スクリプト ブロックを <script> タグと </script> タグで囲む場合は true。それ以外の場合は false

例外

クライアント スクリプト ブロックの typenull です。

- または -

スクリプト ブロックを登録するコントロールが 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) 使用します。

部分ページ更新に関連しないスクリプト ブロックを登録する場合、および初期ページ レンダリング中にスクリプト ブロックを 1 回だけ登録する場合は、 クラスの メソッドをRegisterClientScriptBlockClientScriptManager使用します。 ページの プロパティから オブジェクトへの ClientScriptManager 参照を ClientScript 取得できます。

が のtrue場合addScriptTags、メソッドはRegisterClientScriptBlockスクリプト ブロックの周囲にタグを追加<script>します。 特定<script>のタグの属性を設定する場合など、タグを自分で作成<script>する場合は Pass を渡falseします。 が でfalse、 パラメーターにscript複数のスクリプト ブロックが含まれている場合addScriptTagsは、例外がスローされます。

メソッドは RegisterClientScriptBlock 、開始 <form> タグの後にスクリプト ブロックをページに追加します。 スクリプト ブロックは、それらが登録されているのと同じ順序で出力されるとは限りません。 スクリプト ブロックの順序が重要な場合は、スクリプト ブロックを 1 つの文字列に連結し (たとえば、 オブジェクトを使用 StringBuilder して)、それらを 1 つのクライアント スクリプト ブロックとして登録します。

こちらもご覧ください

適用対象

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

UpdatePanel コントロール内のコントロールで使用できるようにクライアント スクリプト ブロックを ScriptManager コントロールに登録し、スクリプト ブロックをページに追加します。

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

クライアント スクリプト ブロックの型。 このパラメーターは、通常、typeof 演算子 (C#) または GetType 演算子 (Visual Basic) を使用して指定され、スクリプトを登録するコントロールの型を取得します。

key
String

スクリプト ブロックの一意の識別子。

script
String

登録するスクリプト。

addScriptTags
Boolean

スクリプト ブロックを <script> タグと </script> タグで囲む場合は true。それ以外の場合は false

例外

スクリプト ブロックの typenull です。

- または -

スクリプト ブロックを登録するページが null です。

注釈

このメソッドを使用してスクリプト ブロックを登録すると、非同期ポストバックが発生するたびにスクリプトがレンダリングされます。 コントロールが更新されたときにのみスクリプトが登録されるように、コントロール内 UpdatePanel にあるコントロールのスクリプト ブロックを UpdatePanel 登録するには、このメソッドのオーバーロードを RegisterClientScriptBlock(Control, Type, String, String, Boolean) 使用します。

部分ページ更新に関連しないスクリプト ブロックを登録する場合、および初期ページ レンダリング中にスクリプト ブロックを 1 回だけ登録する場合は、 クラスの メソッドをRegisterClientScriptBlockClientScriptManager使用します。 ページの プロパティから オブジェクトへの ClientScriptManager 参照を ClientScript 取得できます。

こちらもご覧ください

適用対象