ScriptManager.RegisterClientScriptBlock Método

Definição

Registra um bloco de script de cliente com o controle ScriptManager para uso com um controle que está em um controle UpdatePanel e adiciona o bloco de script à página.

Sobrecargas

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

Registra um bloco de script de cliente com o controle ScriptManager para uso com um controle que está em um controle UpdatePanel e adiciona o bloco de script à página.

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

Registra um bloco de script de cliente com o controle ScriptManager para uso com um controle que está em um controle UpdatePanel e adiciona o bloco de script à página.

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

Registra um bloco de script de cliente com o controle ScriptManager para uso com um controle que está em um controle UpdatePanel e adiciona o bloco de script à 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

O controle que está registrando o bloco de script de cliente.

type
Type

O tipo de bloco de script de cliente. Geralmente, este parâmetro é especificado com o operador typeof (C#) ou GetType (Visual Basic) para recuperar o tipo do controle que está registrando o script.

key
String

Um identificador exclusivo para o bloco de script.

script
String

O script.

addScriptTags
Boolean

true para circunscrever o bloco de script nas marcas <script> e </script>; caso contrário, false.

Exceções

O bloco de script de cliente type é null.

- ou - O controle que está registrando o bloco de script é null.

O controle que está registrando o bloco de script não está na árvore de controle da página.

Exemplos


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

Comentários

Você usa o RegisterClientScriptBlock método para registrar um bloco de script do cliente compatível com a renderização de página parcial e que não tem dependências da Biblioteca do Microsoft Ajax. Os blocos de script do cliente registrados usando esse método são enviados para a página somente quando control representa um controle que está dentro de um UpdatePanel controle que está sendo atualizado. Para registrar um bloco de script sempre que ocorrer um postback assíncrono, use a RegisterClientScriptBlock(Page, Type, String, String, Boolean) sobrecarga desse método.

Se você quiser registrar um bloco de script que não se refere a atualizações de página parcial e se quiser registrar o bloco de script apenas uma vez durante a renderização inicial da página, use o RegisterClientScriptBlock método da ClientScriptManager classe. Você pode obter uma referência ao ClientScriptManager objeto da ClientScript propriedade da página.

Se addScriptTags for true, o RegisterClientScriptBlock método adiciona <script> marcas ao redor do bloco de script. Passe false se você quiser criar <script> marcas por conta própria, como quando quiser definir os atributos de marcas específicas <script> . Se addScriptTags for false e o script parâmetro contiver vários blocos de script, uma exceção será gerada.

O RegisterClientScriptBlock método adiciona um bloco de script à página após a marca de abertura <form> . Não há garantia de que os blocos de script sejam gerados na mesma ordem em que estão registrados. Se a ordem dos blocos de script for importante, concatene seus blocos de script em uma única cadeia de caracteres (por exemplo, usando o objeto) e registre-os StringBuilder como um único bloco de script do cliente.

Confira também

Aplica-se a

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

Registra um bloco de script de cliente com o controle ScriptManager para uso com um controle que está em um controle UpdatePanel e adiciona o bloco de script à 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

O objeto da página que está registrando o bloco de script de cliente.

type
Type

O tipo de bloco de script de cliente. Geralmente, este parâmetro é especificado com o operador typeof (C#) ou GetType (Visual Basic) para recuperar o tipo do controle que está registrando o script.

key
String

Um identificador exclusivo para o bloco de script.

script
String

O script a ser registrado.

addScriptTags
Boolean

true para circunscrever o bloco de script nas marcas <script> e </script>; caso contrário, false.

Exceções

O bloco de script type é null.

- ou - A página que está registrando o bloco de script é null.

Comentários

Quando você registra um bloco de script usando esse método, o script é renderizado sempre que ocorre um postback assíncrono. Para registrar um bloco de script para um controle que está dentro de um UpdatePanel controle para que o script seja registrado somente quando o UpdatePanel controle for atualizado, use a RegisterClientScriptBlock(Control, Type, String, String, Boolean) sobrecarga desse método.

Se você quiser registrar um bloco de script que não se refere a atualizações de página parcial e se quiser registrar o bloco de script apenas uma vez durante a renderização inicial da página, use o RegisterClientScriptBlock método da ClientScriptManager classe. Você pode obter uma referência ao ClientScriptManager objeto da ClientScript propriedade da página.

Confira também

Aplica-se a