ScriptManager.RegisterClientScriptBlock Método

Definição

Regista um bloco de script cliente com o ScriptManager controlo para uso com um controlo que está dentro de um UpdatePanel controlo, e depois adiciona o bloco de script à página.

Sobrecargas

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

Regista um bloco de script cliente com o ScriptManager controlo para uso com um controlo que está dentro de um UpdatePanel controlo, e depois adiciona o bloco de script à página.

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

Regista um bloco de script cliente com o ScriptManager controlo para uso com um controlo que está dentro de um UpdatePanel controlo, e depois adiciona o bloco de script à página.

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

Regista um bloco de script cliente com o ScriptManager controlo para uso com um controlo que está dentro de um UpdatePanel controlo, e depois 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 controlo que regista o bloco de script cliente.

type
Type

O tipo do bloco de script do cliente. Este parâmetro é normalmente especificado usando o operador typeof (C#) ou o operador GetType (Visual Basic) para recuperar o tipo do controlo que está a registar o script.

key
String

Um identificador único para o bloco de script.

script
String

O roteiro.

addScriptTags
Boolean

true para encerrar o bloco de script em <script> e </script> etiquetas; caso contrário, false.

Exceções

O bloco type de script cliente é null.

-ou-

O controlo que regista o bloco de script é null.

O controlo que regista o bloco de script não está na árvore de controlo 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>

Observações

Utiliza-se o método RegisterClientScriptBlock para registar um bloco de script cliente compatível com renderização parcial de página e que não tenha dependências Microsoft da Ajax Library. Os blocos de script cliente registados através deste método são enviados para a página apenas quando control representam um controlo que está dentro de um UpdatePanel controlo que está a ser atualizado. Para registar um bloco de script sempre que ocorre um postback assíncrono, use a RegisterClientScriptBlock(Page, Type, String, String, Boolean) sobrecarga deste método.

Se quiser registar um bloco de script que não diz respeito a atualizações parciais de página, e se quiser registar o bloco de script apenas uma vez durante a renderização inicial da página, use o RegisterClientScriptBlock método da ClientScriptManager classe. Podes obter uma referência ao ClientScriptManager objeto a partir da ClientScript propriedade da página.

Se addScriptTags for , o RegisterClientScriptBlock método adiciona <script> etiquetas em redor do bloco truede script. Passe false se quiser criar <script> etiquetas por si próprio, como quando quer definir os atributos de etiquetas específicas <script> . Se addScriptTags for false e o script parâmetro contiver múltiplos blocos de script, é lançada uma exceção.

O RegisterClientScriptBlock método adiciona um bloco de script à página após a etiqueta de abertura <form> . Os blocos de script não têm garantia de serem produzidos na mesma ordem em que são registados. Se a ordem dos blocos de script for importante, concatene os seus blocos de script numa única cadeia de caracteres (por exemplo, usando o StringBuilder objeto) e depois registe-os como um único bloco de script cliente.

Ver também

Aplica-se a

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

Regista um bloco de script cliente com o ScriptManager controlo para uso com um controlo que está dentro de um UpdatePanel controlo, e depois 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 de página que está a registar o bloco de script do cliente.

type
Type

O tipo do bloco de script do cliente. Este parâmetro é normalmente especificado usando o operador typeof (C#) ou o operador GetType (Visual Basic) para recuperar o tipo do controlo que está a registar o script.

key
String

Um identificador único para o bloco de script.

script
String

O guião para registar.

addScriptTags
Boolean

true para encerrar o bloco de script em <script> e </script> etiquetas; caso contrário, false.

Exceções

O bloco type de script é null.

-ou-

A página que regista o bloco de script é null.

Observações

Quando regista um bloco de script usando este método, o script é renderizado sempre que ocorre um postback assíncrono. Para registar um bloco de script para um controlo que está dentro de um UpdatePanel controlo, de modo a que esse script só seja registado quando o UpdatePanel controlo é atualizado, use a RegisterClientScriptBlock(Control, Type, String, String, Boolean) sobrecarga deste método.

Se quiser registar um bloco de script que não diz respeito a atualizações parciais de página, e se quiser registar o bloco de script apenas uma vez durante a renderização inicial da página, use o RegisterClientScriptBlock método da ClientScriptManager classe. Podes obter uma referência ao ClientScriptManager objeto a partir da ClientScript propriedade da página.

Ver também

Aplica-se a