Partilhar via


ClientScriptManager.RegisterStartupScript Método

Definição

Registra o script de inicialização com o objeto Page.

Sobrecargas

RegisterStartupScript(Type, String, String)

Registra o script de inicialização no objeto Page usando um tipo, uma chave e um literal de script.

RegisterStartupScript(Type, String, String, Boolean)

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

RegisterStartupScript(Type, String, String)

Registra o script de inicialização no objeto Page usando um tipo, uma chave e um literal de script.

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

Parâmetros

type
Type

O tipo de script de inicialização a ser registrado.

key
String

A chave do script de inicialização a ser registrada.

script
String

O literal do script de inicialização a ser registrado.

Exemplos

O exemplo de código a seguir demonstra o uso do RegisterStartupScript método. Observe que as marcas de script de início e fechamento estão incluídas no script parâmetro. Para adicionar as marcas de script com base em uma configuração de parâmetro adicional, consulte o RegisterStartupScript 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 scripts on the page.
    String csname1 = "PopupScript";
    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))
    {
        StringBuilder cstext1 = new StringBuilder();
        cstext1.Append("<script type=text/javascript> alert('Hello World!') </");
        cstext1.Append("script>");

        cs.RegisterStartupScript(cstype, csname1, cstext1.ToString());
    }
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>RegisterStartupScript</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
    </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">
    Public Sub Page_Load(ByVal sender As [Object], ByVal e As EventArgs)
        ' Define the name and type of the client scripts on the page. 
        Dim csname1 As [String] = "PopupScript"
        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 New StringBuilder()
            cstext1.Append("<script type=text/javascript> alert('Hello World!') </")
            cstext1.Append("script>")
        
            cs.RegisterStartupScript(cstype, csname1, cstext1.ToString())
        End If
    End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>RegisterStartupScript</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
    </div>
    </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 determinado tipo e par de chaves pode ser registrado com a página. A tentativa de registrar um script já registrado não cria uma duplicata do script.

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

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

O bloco de script adicionado pelo RegisterStartupScript método é executado quando a página termina de carregar, mas antes que o evento da OnLoad página seja gerado. 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 registre-os todos em um único bloco de script do cliente.

Confira também

Aplica-se a

RegisterStartupScript(Type, String, String, Boolean)

Registra o script de inicialização 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 RegisterStartupScript(Type ^ type, System::String ^ key, System::String ^ script, bool addScriptTags);
public void RegisterStartupScript (Type type, string key, string script, bool addScriptTags);
member this.RegisterStartupScript : Type * string * string * bool -> unit
Public Sub RegisterStartupScript (type As Type, key As String, script As String, addScriptTags As Boolean)

Parâmetros

type
Type

O tipo de script de inicialização a ser registrado.

key
String

A chave do script de inicialização a ser registrada.

script
String

O literal do script de inicialização a ser registrado.

addScriptTags
Boolean

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

Exceções

type é null.

Exemplos

O exemplo de código a seguir demonstra o uso do RegisterStartupScript método. Observe que o addScriptTags parâmetro é definido para false que as marcas de script inicial e de fechamento 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 inicialização é identificado exclusivamente por sua chave e seu tipo. Scripts com a mesma chave e tipo são considerados duplicados. Somente um script com determinado tipo e par de chaves pode ser registrado com a página. A tentativa de registrar um script já registrado não cria uma duplicata do script.

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

Nessa sobrecarga do RegisterStartupScript 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. Configuração addScriptTags para true indicar que as marcas de script serão adicionadas automaticamente.

O bloco de script adicionado pelo RegisterStartupScript método é executado quando a página termina de carregar, mas antes que o evento da OnLoad página seja gerado. 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 registre-os todos em um único bloco de script do cliente.

Confira também

Aplica-se a