ScriptManager.RegisterClientScriptBlock 方法

定義

使用 ScriptManager 控制項註冊用戶端指令碼區塊,以配合 UpdatePanel 控制項內部的控制項一起使用,並將指令碼區塊加入網頁中。

多載

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

用戶端指令碼區塊的類型。 此參數通常會透過 typeof 運算子 (C#) 或 GetType 運算子 (Visual Basic) 指定,用以擷取註冊指令碼的控制項類型。

key
String

指令碼區塊的唯一識別項。

script
String

指令碼。

addScriptTags
Boolean

若要將指令碼區塊含括在 true<script> 標記中,則為 </script>,否則為 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) 此方法的多載。

如果您想要註冊與部分頁面更新無關的腳本區塊,而且如果您想要在初始頁面轉譯期間只註冊腳本區塊一次,請使用 RegisterClientScriptBlock 類別的 ClientScriptManager 方法。 您可以從頁面的 屬性取得 物件的 ClientScript 參考 ClientScriptManager

如果 為 addScriptTagstrue ,則 RegisterClientScriptBlock 方法會在腳本區塊周圍新增 <script> 標籤。 如果您想要自行建立 <script> 標記,例如當您想要設定特定 <script> 標籤的屬性時,請傳遞 false 。 如果 是 addScriptTagsfalsescript 參數包含多個腳本區塊,則會擲回例外狀況。

方法會在 RegisterClientScriptBlock 開啟 <form> 標籤之後,將腳本區塊新增至頁面。 腳本區塊不保證會依註冊的順序輸出。 如果腳本區塊的順序很重要,請將腳本區塊串連成單一字串 (例如使用 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

用戶端指令碼區塊的類型。 此參數通常會透過 typeof 運算子 (C#) 或 GetType 運算子 (Visual Basic) 指定,用以擷取註冊指令碼的控制項類型。

key
String

指令碼區塊的唯一識別項。

script
String

要註冊的指令碼。

addScriptTags
Boolean

若要將指令碼區塊含括在 true<script> 標記中,則為 </script>,否則為 false

例外狀況

指令碼區塊 typenull

-或-

正在註冊指令碼區塊的網頁為 null

備註

當您使用此方法註冊腳本區塊時,每次發生非同步回傳時,就會轉譯腳本。 若要為控制項內的 UpdatePanel 控制項註冊腳本區塊,以便只在更新控制項時 UpdatePanel 註冊腳本,請使用 RegisterClientScriptBlock(Control, Type, String, String, Boolean) 這個方法的多載。

如果您想要註冊與部分頁面更新無關的腳本區塊,而且如果您想要在初始頁面轉譯期間只註冊腳本區塊一次,請使用 RegisterClientScriptBlock 類別的 ClientScriptManager 方法。 您可以從頁面的 屬性取得 物件的 ClientScript 參考 ClientScriptManager

另請參閱

適用於