ClientScriptManager.RegisterClientScriptBlock Método

Definição

Regista o script cliente com o Page objeto.

Sobrecargas

Name Description
RegisterClientScriptBlock(Type, String, String)

Regista o script cliente com o Page objeto usando um tipo, chave e script literal.

RegisterClientScriptBlock(Type, String, String, Boolean)

Regista o script cliente com o Page objeto usando um tipo, chave, literal de script e valor booleano que indicam se deve adicionar etiquetas de script.

RegisterClientScriptBlock(Type, String, String)

Regista o script cliente com o Page objeto usando um tipo, chave e script literal.

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 de script do cliente a registar.

key
String

A chave do script cliente para registar.

script
String

O script cliente literalmente para registar.

Exemplos

O exemplo de código seguinte demonstra a utilização 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>

Observações

Um script cliente é identificado de forma única pela sua chave e pelo seu tipo. Scripts com a mesma chave e tipo são considerados duplicados. Apenas um script com um determinado tipo e par de chaves pode ser registado na página. Tentar registar um script que já está registado não cria um duplicado do script.

Chame o IsClientScriptBlockRegistered método para determinar se um script cliente com um dado par de chave e tipo já está registado e evite tentar desnecessariamente adicionar o script.

Nesta sobrecarga do RegisterClientScriptBlock método, deve garantir que o script fornecido no script parâmetro está enrolado num <script> bloco de elemento.

O RegisterClientScriptBlock método adiciona um bloco de script no topo da página renderizada. Os blocos de script não têm garantia de serem produzidos na ordem em que são registados. Se a ordem dos blocos de script for importante, use um StringBuilder objeto para reunir os scripts numa única cadeia e depois registe-os todos num único bloco de script cliente.

Ver também

Aplica-se a

RegisterClientScriptBlock(Type, String, String, Boolean)

Regista o script cliente com o Page objeto usando um tipo, chave, literal de script e valor booleano que indicam se deve adicionar etiquetas 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 de script do cliente a registar.

key
String

A chave do script cliente para registar.

script
String

O script cliente literalmente para registar.

addScriptTags
Boolean

Um valor booleano que indica se deve adicionar etiquetas de script.

Exceções

O tipo de bloco de script cliente é null.

Exemplos

O exemplo de código seguinte demonstra a utilização do RegisterClientScriptBlock método. Note que o addScriptTags parâmetro está definido para true que as etiquetas de início e fecho do script não estejam incluídas no 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>

Observações

Um script cliente é identificado de forma única pela sua chave e pelo seu tipo. Scripts com a mesma chave e tipo são considerados duplicados. Apenas um script com um determinado tipo e par de chaves pode ser registado na página. Tentar registar um script que já está registado não cria um duplicado do script.

Chame o IsClientScriptBlockRegistered método para determinar se um script cliente com um dado par de chave e tipo já está registado. Isto permite-te evitar tentar adicionar o guião desnecessariamente.

Nesta sobrecarga do RegisterClientScriptBlock método, pode indicar se o script fornecido no script parâmetro está enrolado com um <script> bloco de elemento usando o addScriptTags parâmetro. Definir addScriptTags para true indica que as etiquetas de script serão adicionadas automaticamente.

O RegisterClientScriptBlock método adiciona um bloco de script no topo da página renderizada. Os blocos de script não têm garantia de serem produzidos na ordem em que são registados. Se a ordem dos blocos de script for importante, use um StringBuilder objeto para reunir os scripts numa única cadeia e depois registe-os todos num único bloco de script cliente.

Ver também

Aplica-se a