Compartir a través de


ScriptManager.RegisterClientScriptBlock Método

Definición

Registra un bloque de script de cliente con el control ScriptManager para usarlo con un control que está dentro de un control UpdatePanel y, a continuación, agrega el bloque de script a la página.

Sobrecargas

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

Registra un bloque de script de cliente con el control ScriptManager para usarlo con un control que está dentro de un control UpdatePanel y, a continuación, agrega el bloque de script a la página.

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

Registra un bloque de script de cliente con el control ScriptManager para usarlo con un control que está dentro de un control UpdatePanel y, a continuación, agrega el bloque de script a la página.

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

Registra un bloque de script de cliente con el control ScriptManager para usarlo con un control que está dentro de un control UpdatePanel y, a continuación, agrega el bloque de script a la página.

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)

Parámetros

control
Control

Control que registra el bloque de script de cliente.

type
Type

Tipo del bloque de script de cliente. Este parámetro se suele especificar mediante el uso del operador typeof (C#) o GetType (Visual Basic) para recuperar el tipo del control que registra el script.

key
String

Identificador único del bloque de script.

script
String

Script.

addScriptTags
Boolean

true para incluir el bloque de script entre etiquetas <script> y </script>; de lo contrario, false.

Excepciones

El valor de type para el bloque de script de cliente es null.

o bien

El control que registra el bloque de script es null.

El control que registra el bloque de script no está en el árbol de controles de la página.

Ejemplos


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

Comentarios

Use el RegisterClientScriptBlock método para registrar un bloque de script de cliente compatible con la representación parcial de páginas y que no tenga Microsoft dependencias de la biblioteca de Ajax. Los bloques de script de cliente registrados mediante este método se envían a la página solo cuando control representa un control que está dentro de un UpdatePanel control que se está actualizando. Para registrar un bloque de script cada vez que se produce un postback asincrónico, use la RegisterClientScriptBlock(Page, Type, String, String, Boolean) sobrecarga de este método.

Si desea registrar un bloque de script que no pertenece a actualizaciones parciales de páginas y si desea registrar el bloque de script solo una vez durante la representación inicial de página, use el RegisterClientScriptBlock método de la ClientScriptManager clase . Puede obtener una referencia al ClientScriptManager objeto desde la ClientScript propiedad de la página.

Si addScriptTags es true, el RegisterClientScriptBlock método agrega <script> etiquetas alrededor del bloque de script. Pase false si desea crear <script> etiquetas usted mismo, como cuando quiera establecer los atributos de etiquetas específicas <script> . Si addScriptTags es false y el script parámetro contiene varios bloques de script, se produce una excepción.

El RegisterClientScriptBlock método agrega un bloque de script a la página después de la etiqueta de apertura <form> . No se garantiza que los bloques de script sean de salida en el mismo orden en el que están registrados. Si el orden de los bloques de script es importante, concatene los bloques de script en una sola cadena (por ejemplo, mediante el StringBuilder objeto ) y, a continuación, regístrelos como un único bloque de script de cliente.

Consulte también

Se aplica a

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

Registra un bloque de script de cliente con el control ScriptManager para usarlo con un control que está dentro de un control UpdatePanel y, a continuación, agrega el bloque de script a la página.

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)

Parámetros

page
Page

Objeto de página que registra el bloque de script de cliente.

type
Type

Tipo del bloque de script de cliente. Este parámetro se suele especificar mediante el uso del operador typeof (C#) o GetType (Visual Basic) para recuperar el tipo del control que registra el script.

key
String

Identificador único del bloque de script.

script
String

Script que se va a registrar.

addScriptTags
Boolean

true para incluir el bloque de script entre etiquetas <script> y </script>; de lo contrario, false.

Excepciones

El valor de type para el bloque de script es null.

o bien

La página que registra el bloque de script es null.

Comentarios

Al registrar un bloque de script mediante este método, el script se representa cada vez que se produce una postback asincrónica. Para registrar un bloque de script para un control que se encuentra dentro de un UpdatePanel control para que el script solo se registre cuando se actualice el UpdatePanel control, use la RegisterClientScriptBlock(Control, Type, String, String, Boolean) sobrecarga de este método.

Si desea registrar un bloque de script que no pertenece a actualizaciones parciales de páginas y si desea registrar el bloque de script solo una vez durante la representación inicial de página, use el RegisterClientScriptBlock método de la ClientScriptManager clase . Puede obtener una referencia al ClientScriptManager objeto desde la ClientScript propiedad de la página.

Consulte también

Se aplica a