System.Web.UI


ClientScriptManager (Clase)
Define los métodos para la administración de secuencias de comandos de cliente en aplicaciones Web.

Espacio de nombres: System.Web.UI
Ensamblado: System.Web (en system.web.dll)

Sintaxis

Visual Basic (Declaración)
Public NotInheritable Class ClientScriptManager
Visual Basic (Uso)
Dim instance As ClientScriptManager
C#
public sealed class ClientScriptManager
C++
public ref class ClientScriptManager sealed
J#
public final class ClientScriptManager
JScript
public final class ClientScriptManager
XAML
No aplicable.
Comentarios

La clase ClientScriptManager se utiliza para administrar las secuencias de comandos de cliente y agregarlas a las aplicaciones Web. Puede obtener una referencia a la clase ClientScriptManager desde la propiedad ClientScript del objeto Page.

Mediante declaración puede agregar una secuencia de comandos de cliente a una página Web incluyendo la secuencia de comandos en el marcado HTML de la página. Sin embargo, hay situaciones en las que se necesita agregar dinámicamente la secuencia de comandos de cliente. Para agregar dinámicamente una secuencia de comandos, utilice los métodos RegisterClientScriptBlock, RegisterClientScriptInclude, RegisterStartupScript o RegisterOnSubmitStatement, dependiendo de cuándo y cómo desee agregar la secuencia de comandos. Para obtener más información, vea Cómo: Agregar secuencias de comandos de cliente a las páginas Web ASP.NET dinámicamente.

La clase ClientScriptManager identifica de forma única las secuencias de comandos por un objeto String clave y un objeto Type. Las secuencias de comandos de la misma clave y tipo se consideran duplicadas. La utilización del tipo de secuencia de comandos ayuda a evitar la confusión entre secuencias de comandos similares de controles de usuario diferentes que podrían utilizarse en la página.

Se puede utilizar la clase ClientScriptManager para invocar las devoluciones de llamada del cliente en aquellas situaciones en la que es deseable ejecutar código de servidor desde el cliente sin realizar una devolución de datos. Este procedimiento se denomina realizar una devolución de llamada fuera de banda al servidor. En una devolución de llamada de cliente, una función de secuencia de comandos de cliente envía una solicitud asincrónica a una página Web ASP.NET. La página Web ejecuta una versión modificada de su ciclo de vida normal para procesar la devolución de llamada. Utilice el método GetCallbackEventReference para obtener una referencia a una función de cliente que, cuando se invoca, inicia una devolución de llamada de cliente a los eventos del servidor. Para obtener más información, vea Implementar devoluciones de llamada de cliente sin devoluciones de datos en las páginas Web ASP.NET.

NotaNota:

Las devoluciones de llamada de secuencias de comandos no funcionan en los exploradores más antiguos que no admiten el Modelo de objetos de documento (DOM) y requieren que ECMAScript esté habilitado en el cliente. Para comprobar si el explorador admite las devoluciones de llamada, utilice la propiedad SupportsCallback que es accesible a través de la propiedad Browser del objeto Request intrínseco de ASP.NET.

Utilice los métodos GetPostBackEventReference y GetPostBackClientHyperlink para definir un evento de devolución de datos de cliente. Cuando se invocan, estos métodos habilitan las funciones de secuencia de comandos de cliente para que el servidor devuelva los datos a la página. Un evento de devolución de datos de cliente es diferente de una devolución de llamada de cliente en que la página Web finaliza un ciclo de vida normal para procesar el evento de devolución de datos de cliente.

NotaNota:

Si está utilizando un control Button y la propiedad UseSubmitBehavior se establece en false, puede utilizar el método GetPostBackEventReference para devolver el evento de devolución de datos de cliente para el control Button.

Se puede utilizar la propiedad OnClientClick del control Button, el control ImageButton y el control LinkButton para ejecutar la secuencia de comandos de cliente.

Ejemplo

En el ejemplo de código siguiente se muestra cómo usar el método RegisterClientScriptBlock de la clase ClientScriptManager. En la página, se definen dos secuencias de comandos de cliente: PopupScript, que muestra un mensaje de alerta cuando la página está cargada y ButtonClickScript, que define un controlador del cliente para un evento onClick de un botón HTML.

Visual Basic
<%@ 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  >
  <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>
C#
<%@ 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  >
  <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>
Seguridad de .NET Framework

Jerarquía de herencia

System.Object
  System.Web.UI.ClientScriptManager
Seguridad para subprocesos

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Plataformas

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

Información de versión

.NET Framework

Compatible con: 3.0, 2.0
Vea también

Page view tracker