Condividi tramite


ScriptManager.RegisterClientScriptBlock Metodo

Definizione

Registra un blocco di script client con il ScriptManager controllo da usare con un controllo che si trova all'interno di un UpdatePanel controllo e quindi aggiunge il blocco di script alla pagina.

Overload

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

Registra un blocco di script client con il ScriptManager controllo da usare con un controllo che si trova all'interno di un UpdatePanel controllo e quindi aggiunge il blocco di script alla pagina.

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

Registra un blocco di script client con il ScriptManager controllo da usare con un controllo che si trova all'interno di un UpdatePanel controllo e quindi aggiunge il blocco di script alla pagina.

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

Registra un blocco di script client con il ScriptManager controllo da usare con un controllo che si trova all'interno di un UpdatePanel controllo e quindi aggiunge il blocco di script alla pagina.

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)

Parametri

control
Control

Controllo che registra il blocco di script client.

type
Type

Tipo del blocco di script client. Questo parametro viene in genere specificato utilizzando l'operatore typeof (C#) o l'operatore GetType (Visual Basic) per recuperare il tipo del controllo che registra lo script.

key
String

Identificatore univoco per il blocco di script.

script
String

Script.

addScriptTags
Boolean

trueper racchiudere il blocco di script in e </script> tag; in <script> caso contrario, false.

Eccezioni

Il blocco type di script client è null.

oppure

Il controllo che registra il blocco di script è null.

Il controllo che registra il blocco di script non si trova nell'albero dei controlli della pagina.

Esempio


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

Commenti

Si usa il RegisterClientScriptBlock metodo per registrare un blocco di script client compatibile con il rendering a pagina parziale e che non ha dipendenze di Microsoft Ajax Library. I blocchi di script client registrati tramite questo metodo vengono inviati alla pagina solo quando control rappresenta un controllo che si trova all'interno di un UpdatePanel controllo da aggiornare. Per registrare un blocco di script ogni volta che si verifica un postback asincrono, usare l'overload RegisterClientScriptBlock(Page, Type, String, String, Boolean) di questo metodo.

Se si desidera registrare un blocco di script che non riguarda gli aggiornamenti a pagina parziale e se si desidera registrare il blocco di script una sola volta durante il rendering iniziale della pagina, usare il RegisterClientScriptBlock metodo della ClientScriptManager classe . È possibile ottenere un riferimento all'oggetto ClientScriptManager dalla ClientScript proprietà della pagina.

Se addScriptTags è true, il RegisterClientScriptBlock metodo aggiunge <script> tag intorno al blocco di script. Passare false se si vogliono creare <script> tag manualmente, ad esempio quando si desidera impostare gli attributi di tag specifici <script> . Se addScriptTags è false e il script parametro contiene più blocchi di script, viene generata un'eccezione.

Il RegisterClientScriptBlock metodo aggiunge un blocco di script alla pagina dopo il tag di apertura <form> . Non è garantito che i blocchi di script vengano restituiti nello stesso ordine in cui vengono registrati. Se l'ordine dei blocchi di script è importante, concatenare i blocchi di script in una singola stringa ( ad esempio usando l'oggetto StringBuilder ) e quindi registrarli come blocco di script client singolo.

Vedi anche

Si applica a

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

Registra un blocco di script client con il ScriptManager controllo da usare con un controllo che si trova all'interno di un UpdatePanel controllo e quindi aggiunge il blocco di script alla pagina.

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)

Parametri

page
Page

Oggetto pagina che registra il blocco di script client.

type
Type

Tipo del blocco di script client. Questo parametro viene in genere specificato utilizzando l'operatore typeof (C#) o l'operatore GetType (Visual Basic) per recuperare il tipo del controllo che registra lo script.

key
String

Identificatore univoco per il blocco di script.

script
String

Script da registrare.

addScriptTags
Boolean

trueper racchiudere il blocco di script in e </script> tag; in <script> caso contrario, false.

Eccezioni

Il blocco type di script è null.

oppure

La pagina che registra il blocco di script è null.

Commenti

Quando si registra un blocco di script usando questo metodo, viene eseguito il rendering dello script ogni volta che si verifica un postback asincrono. Per registrare un blocco di script per un controllo all'interno di un UpdatePanel controllo in modo che lo script venga registrato solo quando il UpdatePanel controllo viene aggiornato, utilizzare l'overload RegisterClientScriptBlock(Control, Type, String, String, Boolean) di questo metodo.

Se si desidera registrare un blocco di script che non riguarda gli aggiornamenti a pagina parziale e se si desidera registrare il blocco di script una sola volta durante il rendering iniziale della pagina, usare il RegisterClientScriptBlock metodo della ClientScriptManager classe . È possibile ottenere un riferimento all'oggetto ClientScriptManager dalla ClientScript proprietà della pagina.

Vedi anche

Si applica a