ScriptManager.RegisterClientScriptBlock Metoda

Definicja

Rejestruje blok skryptu klienta z ScriptManager kontrolką do użycia z kontrolką UpdatePanel , która znajduje się wewnątrz kontrolki, a następnie dodaje blok skryptu do strony.

Przeciążenia

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

Rejestruje blok skryptu klienta z ScriptManager kontrolką do użycia z kontrolką UpdatePanel , która znajduje się wewnątrz kontrolki, a następnie dodaje blok skryptu do strony.

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

Rejestruje blok skryptu klienta z ScriptManager kontrolką do użycia z kontrolką UpdatePanel , która znajduje się wewnątrz kontrolki, a następnie dodaje blok skryptu do strony.

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

Rejestruje blok skryptu klienta z ScriptManager kontrolką do użycia z kontrolką UpdatePanel , która znajduje się wewnątrz kontrolki, a następnie dodaje blok skryptu do strony.

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)

Parametry

control
Control

Kontrolka rejestrującą blok skryptu klienta.

type
Type

Typ bloku skryptu klienta. Ten parametr jest zwykle określany przy użyciu typeof operatora (C#) lub GetType operatora (Visual Basic) w celu pobrania typu kontrolki rejestrującej skrypt.

key
String

Unikatowy identyfikator bloku skryptu.

script
String

Skrypt.

addScriptTags
Boolean

true aby ująć blok skryptu w znaczniki <script> i </script> ; w przeciwnym razie false.

Wyjątki

Blok type skryptu klienta to null.

-lub-

Kontrolka rejestrującą blok skryptu to null.

Kontrolka rejestrującą blok skryptu nie znajduje się w drzewie sterowania strony.

Przykłady


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

Uwagi

Metoda służy RegisterClientScriptBlock do rejestrowania bloku skryptu klienta zgodnego z renderowaniem częściowym i bez Microsoft zależności biblioteki Ajax. Bloki skryptu klienta zarejestrowane przy użyciu tej metody są wysyłane do strony tylko wtedy, gdy control reprezentuje kontrolkę, która znajduje się wewnątrz aktualizowanej UpdatePanel kontrolki. Aby zarejestrować blok skryptu za każdym razem, gdy wystąpi asynchroniczne ogłaszanie zwrotne, użyj RegisterClientScriptBlock(Page, Type, String, String, Boolean) przeciążenia tej metody.

Jeśli chcesz zarejestrować blok skryptu, który nie dotyczy aktualizacji częściowych stron, a jeśli chcesz zarejestrować blok skryptu tylko raz podczas renderowania początkowej strony, użyj RegisterClientScriptBlock metody ClientScriptManager klasy . Odwołanie do ClientScriptManager obiektu można uzyskać z ClientScript właściwości strony.

Jeśli addScriptTags parametr ma truewartość , RegisterClientScriptBlock metoda dodaje <script> tagi wokół bloku skryptu. Przekaż false , jeśli chcesz samodzielnie utworzyć <script> tagi, na przykład kiedy chcesz ustawić atrybuty określonych <script> tagów. Jeśli addScriptTags parametr ma wartość i falsescript zawiera wiele bloków skryptu, zgłaszany jest wyjątek.

Metoda RegisterClientScriptBlock dodaje blok skryptu do strony po tagu otwierania <form> . Bloki skryptu nie są gwarantowane jako dane wyjściowe w tej samej kolejności, w jakiej są zarejestrowane. Jeśli kolejność bloków skryptu jest ważna, połącz bloki skryptu w jeden ciąg (na przykład przy użyciu StringBuilder obiektu), a następnie zarejestruj je jako blok pojedynczego skryptu klienta.

Zobacz też

Dotyczy

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

Rejestruje blok skryptu klienta z ScriptManager kontrolką do użycia z kontrolką UpdatePanel , która znajduje się wewnątrz kontrolki, a następnie dodaje blok skryptu do strony.

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)

Parametry

page
Page

Obiekt strony rejestrujący blok skryptu klienta.

type
Type

Typ bloku skryptu klienta. Ten parametr jest zwykle określany przy użyciu typeof operatora (C#) lub GetType operatora (Visual Basic) w celu pobrania typu kontrolki rejestrującej skrypt.

key
String

Unikatowy identyfikator bloku skryptu.

script
String

Skrypt do zarejestrowania.

addScriptTags
Boolean

true aby ująć blok skryptu w znaczniki <script> i </script> ; w przeciwnym razie false.

Wyjątki

Blok type skryptu to null.

-lub-

Strona rejestrującą blok skryptu to null.

Uwagi

Podczas rejestrowania bloku skryptu przy użyciu tej metody skrypt jest renderowany za każdym razem, gdy wystąpi asynchroniczne ogłaszanie zwrotne. Aby zarejestrować blok skryptu dla kontrolki, która znajduje się wewnątrz UpdatePanel kontrolki, aby skrypt był rejestrowany tylko po UpdatePanel zaktualizowaniu kontrolki, użyj RegisterClientScriptBlock(Control, Type, String, String, Boolean) przeciążenia tej metody.

Jeśli chcesz zarejestrować blok skryptu, który nie dotyczy aktualizacji częściowych stron, a jeśli chcesz zarejestrować blok skryptu tylko raz podczas renderowania początkowej strony, użyj RegisterClientScriptBlock metody ClientScriptManager klasy . Odwołanie do ClientScriptManager obiektu można uzyskać z ClientScript właściwości strony.

Zobacz też

Dotyczy