ScriptManager.RegisterClientScriptBlock Metodo

Definizione

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

Overload

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

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

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

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

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

Registra un blocco di script client con il controllo ScriptManager da usare con un controllo che si trova all'interno di un controllo UpdatePanel 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 usando l'operatore typeof (C#) o l'operatore GetType (Visual Basic) per recuperare il tipo del controllo che sta registrando lo script.

key
String

Identificatore univoco per il blocco di script.

script
String

Script.

addScriptTags
Boolean

true per includere il blocco di script nei tag <script> e </script>; in caso contrario, false.

Eccezioni

Il blocco di script client type è null.

-oppure-

Il controllo che registra il blocco di script è null.

Il controllo che registra il blocco di script non è presente nella struttura ad 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 utilizza il metodo RegisterClientScriptBlock per la registrazione di un blocco di script client che è compatibile con il rendering parziale della pagina e che non ha alcuna dipendenza Microsoft Ajax Library. I blocchi di script client registrati con questo metodo vengono inviati alla pagina solo quando control rappresenta un controllo che si trova all'interno di un controllo UpdatePanel in fase di aggiornamento. 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 vuole registrare un blocco di script che non riguarda gli aggiornamenti parziali della pagina e si vuole registrare il blocco di script solo una volta durante il rendering della pagina iniziale, usare il metodo RegisterClientScriptBlock della classe ClientScriptManager. È possibile ottenere un riferimento all'oggetto ClientScriptManager dalla proprietà ClientScript della pagina.

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

Il metodo RegisterClientScriptBlock aggiunge un blocco di script alla pagina dopo il tag di apertura <form>. Non è garantito che l'output dei blocchi di script sarà nello stesso ordine in cui sono 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 un blocco di script client singolo.

Vedi anche

Si applica a

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

Registra un blocco di script client con il controllo ScriptManager da usare con un controllo che si trova all'interno di un controllo UpdatePanel 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 usando l'operatore typeof (C#) o l'operatore GetType (Visual Basic) per recuperare il tipo del controllo che sta registrando lo script.

key
String

Identificatore univoco per il blocco di script.

script
String

Script da registrare.

addScriptTags
Boolean

true per includere il blocco di script nei tag <script> e </script>; in caso contrario, false.

Eccezioni

Il blocco di script type è null.

-oppure-

La pagina che registra il blocco di script è null.

Commenti

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

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

Vedi anche

Si applica a