Partilhar via


ClientScriptManager.RegisterClientScriptBlock Método

Definição

Registra o script de cliente com o objeto Page.

Sobrecargas

RegisterClientScriptBlock(Type, String, String)

Registra o script de cliente com o objeto Page usando um tipo, uma chave e uma literal de script.

RegisterClientScriptBlock(Type, String, String, Boolean)

Registra o script de cliente no objeto Page usando um tipo, uma chave, um literal de script e um valor booliano indicando se devem ser adicionadas marcas de script.

RegisterClientScriptBlock(Type, String, String)

Registra o script de cliente com o objeto Page usando um tipo, uma chave e uma literal de script.

public:
 void RegisterClientScriptBlock(Type ^ type, System::String ^ key, System::String ^ script);
public void RegisterClientScriptBlock (Type type, string key, string script);
member this.RegisterClientScriptBlock : Type * string * string -> unit
Public Sub RegisterClientScriptBlock (type As Type, key As String, script As String)

Parâmetros

type
Type

O tipo do script de cliente que será registrado.

key
String

A chave do script de cliente a ser registrado.

script
String

A literal de script de cliente a ser registrada.

Exemplos

O exemplo de código a seguir demonstra o uso do RegisterClientScriptBlock método .

<%@ 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">
  public void Page_Load(Object sender, EventArgs e)
  {
    // Define the name and type of the client script on the page.
    String csName = "ButtonClickScript";
    Type csType = this.GetType();

    // Get a ClientScriptManager reference from the Page class.
    ClientScriptManager cs = Page.ClientScript;

    // Check to see if the client script is already registered.
    if (!cs.IsClientScriptBlockRegistered(csType, csName))
    {
      StringBuilder csText = new StringBuilder();
      csText.Append("<script type=\"text/javascript\"> function DoClick() {");
      csText.Append("Form1.Message.value='Text from client script.'; }");
      csText.Append("</script>");
      cs.RegisterClientScriptBlock(csType, csName, csText.ToString());
    }
  }
</script>
<html  >
  <head>
    <title>RegisterClientScriptBlock Example</title>
  </head>
  <body>
     <form id="Form1"
         runat="server">
        <input type="text" id="Message" /> <input type="button" value="ClickMe" onclick="DoClick()" />
     </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">
    Public Sub Page_Load(ByVal sender As [Object], ByVal e As EventArgs)
        ' Define the name and type of the client script on the page. 
        Dim csName As [String] = "ButtonClickScript"
        Dim csType As Type = Me.[GetType]()
        
        ' Get a ClientScriptManager reference from the Page class. 
        Dim cs As ClientScriptManager = Page.ClientScript
        
        ' Check to see if the client script is already registered. 
        If Not cs.IsClientScriptBlockRegistered(csType, csName) Then
            Dim csText As New StringBuilder()
            csText.Append("<script type=""text/javascript""> function DoClick() {")
            csText.Append("Form1.Message.value='Text from client script.'; }")
            csText.Append("</script>")
            cs.RegisterClientScriptBlock(csType, csName, csText.ToString())
        End If
    End Sub
</script>
<html  >
  <head>
    <title>RegisterClientScriptBlock Example</title>
  </head>
  <body>
     <form id="Form1"
         runat="server">
        <input type="text" id="Message" /> <input type="button" value="ClickMe" onclick="DoClick()" />
     </form>
  </body>
</html>

Comentários

Um script de cliente é identificado exclusivamente por sua chave e seu tipo. Scripts com a mesma chave e tipo são considerados duplicados. Somente um script com um determinado tipo e par de chaves pode ser registrado com a página. Tentar registrar um script que já está registrado não cria uma duplicata do script.

Chame o IsClientScriptBlockRegistered método para determinar se um script de cliente com uma determinada chave e um par de tipos já está registrado e evite tentar adicionar o script desnecessariamente.

Nessa sobrecarga do RegisterClientScriptBlock método, você deve verificar se o script fornecido no script parâmetro está encapsulado em um <script> bloco de elementos.

O RegisterClientScriptBlock método adiciona um bloco de script à parte superior da página renderizada. Não há garantia de que os blocos de script sejam gerados na ordem em que estão registrados. Se a ordem dos blocos de script for importante, use um StringBuilder objeto para reunir os scripts em uma única cadeia de caracteres e registrá-los todos em um único bloco de script do cliente.

Confira também

Aplica-se a

RegisterClientScriptBlock(Type, String, String, Boolean)

Registra o script de cliente no objeto Page usando um tipo, uma chave, um literal de script e um valor booliano indicando se devem ser adicionadas marcas de script.

public:
 void RegisterClientScriptBlock(Type ^ type, System::String ^ key, System::String ^ script, bool addScriptTags);
public void RegisterClientScriptBlock (Type type, string key, string script, bool addScriptTags);
member this.RegisterClientScriptBlock : Type * string * string * bool -> unit
Public Sub RegisterClientScriptBlock (type As Type, key As String, script As String, addScriptTags As Boolean)

Parâmetros

type
Type

O tipo do script de cliente que será registrado.

key
String

A chave do script de cliente a ser registrado.

script
String

A literal de script de cliente a ser registrada.

addScriptTags
Boolean

Um valor booliano que indica se deverão ser adicionadas marcas de script.

Exceções

O tipo do bloco de script de cliente é null.

Exemplos

O exemplo de código a seguir demonstra o uso do RegisterClientScriptBlock método . Observe que o addScriptTags parâmetro é definido como para true que as marcas de script de início e fechamento não sejam incluídas com o script parâmetro .

<%@ 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">
  public void Page_Load(Object sender, EventArgs e)
  {
    // Define the name and type of the client scripts on the page.
    String csname1 = "PopupScript";
    String csname2 = "ButtonClickScript";
    Type cstype = this.GetType();
        
    // Get a ClientScriptManager reference from the Page class.
    ClientScriptManager cs = Page.ClientScript;

    // Check to see if the startup script is already registered.
    if (!cs.IsStartupScriptRegistered(cstype, csname1))
    {
      String cstext1 = "alert('Hello World');";
      cs.RegisterStartupScript(cstype, csname1, cstext1, true);
    }

    // Check to see if the client script is already registered.
    if (!cs.IsClientScriptBlockRegistered(cstype, csname2))
    {
      StringBuilder cstext2 = new StringBuilder();
      cstext2.Append("<script type=\"text/javascript\"> function DoClick() {");
      cstext2.Append("Form1.Message.value='Text from client script.'} </");
      cstext2.Append("script>");
      cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), false);
    }
  }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ClientScriptManager Example</title>
  </head>
  <body>
     <form id="Form1"
         runat="server">
        <input type="text" id="Message" /> <input type="button" value="ClickMe" onclick="DoClick()" />
     </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_Load(ByVal sender As Object, ByVal e As System.EventArgs)

    ' Define the name and type of the client scripts on the page.
    Dim csname1 As String = "PopupScript"
    Dim csname2 As String = "ButtonClickScript"
    Dim cstype As Type = Me.GetType()
    
    ' Get a ClientScriptManager reference from the Page class.
    Dim cs As ClientScriptManager = Page.ClientScript

    ' Check to see if the startup script is already registered.
    If (Not cs.IsStartupScriptRegistered(cstype, csname1)) Then
      
      Dim cstext1 As String = "alert('Hello World');"
      cs.RegisterStartupScript(cstype, csname1, cstext1, True)
      
    End If
    
    ' Check to see if the client script is already registered.
    If (Not cs.IsClientScriptBlockRegistered(cstype, csname2)) Then
      
      Dim cstext2 As New StringBuilder()
            cstext2.Append("<script type=""text/javascript""> function DoClick() {")
      cstext2.Append("Form1.Message.value='Text from client script.'} </")
      cstext2.Append("script>")
      cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), False)
      
    End If
    
  End Sub
  
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ClientScriptManager Example</title>
  </head>
  <body>
     <form id="Form1"
         runat="server">
        <input type="text" id="Message" /> <input type="button" value="ClickMe" onclick="DoClick()" />
     </form>
  </body>
</html>

Comentários

Um script de cliente é identificado exclusivamente por sua chave e seu tipo. Scripts com a mesma chave e tipo são considerados duplicados. Somente um script com um determinado tipo e par de chaves pode ser registrado com a página. Tentar registrar um script que já está registrado não cria uma duplicata do script.

Chame o IsClientScriptBlockRegistered método para determinar se um script de cliente com uma determinada chave e um par de tipos já está registrado. Isso permite que você evite tentar adicionar o script desnecessariamente.

Nessa sobrecarga do RegisterClientScriptBlock método, você pode indicar se o script fornecido no script parâmetro é encapsulado com um <script> bloco de elementos usando o addScriptTags parâmetro . Definir addScriptTags como true indica que as marcas de script serão adicionadas automaticamente.

O RegisterClientScriptBlock método adiciona um bloco de script à parte superior da página renderizada. Não há garantia de que os blocos de script sejam gerados na ordem em que estão registrados. Se a ordem dos blocos de script for importante, use um StringBuilder objeto para reunir os scripts em uma única cadeia de caracteres e registrá-los todos em um único bloco de script do cliente.

Confira também

Aplica-se a