Agregar eventos de secuencias de comandos de cliente a los controles de servidor Web ASP.NET

Las secuencias de comandos de cliente se pueden agregar a los controles de una página Web ASP.NET mediante declaración, del mismo modo que se agregarían a elementos HTML. Opcionalmente, puede agregar eventos de secuencias de comandos de cliente a un control de servidor Web ASP.NET mediante programación, lo que resulta útil cuando el evento o el código depende de información que sólo está disponible en tiempo de ejecución.

Nota: esta situación se describe en el siguiente artículo de Microsoft.

Para agregar un controlador de eventos de cliente a un control de servidor ASP.NET mediante declaración

En el ejemplo de código siguiente se muestra una página Web ASP.NET que incluye una secuencia de comandos de cliente que cambia el color del texto de un botón cuando el usuario pasa el mouse (ratón) por encima de él.

<%@ Page Language="C#" %>
<html>
<head runat="server">
<title>Untitled Page</title>
<script type="text/javascript">
  var previousColor;
  function MakeRed()
  {
    previousColor = window.event.srcElement.style.color;
    window.event.srcElement.style.color = "#FF0000";
  }
  function RestoreColor()
  {
    window.event.srcElement.style.color = previousColor;
  }
</script>
</head>
<body>
<form id="form1" runat="server">
  <asp:button id="Button1" runat="server"
    text="Button1"
    onmouseover="MakeRed();"
    onmouseout="RestoreColor();" />
</form>
</body>
</html>

Para agregar un controlador de eventos de cliente a un control de servidor ASP.NET mediante programación

En el evento Init o Load de la página, llame al método Add de la colección Attributes del control.

En el ejemplo de código siguiente se muestra cómo agregar una secuencia de comandos de cliente a un control TextBox. La secuencia de comandos de cliente muestra la longitud del texto en el control TextBox. La secuencia de comandos presupone que la página contiene un elemento span denominado spanCounter.

protected void Page_Load(object sender, EventArgs e)
{
  String displayControlName = "spanCounter";
  TextBox1.Attributes.Add("onkeyup", displayControlName +
  ".innerText=this.value.length;");
}

Para agregar un evento onclick de cliente a un control de botón

En el control de botón (controles Button, LinkButton e ImageButton), establezca la propiedad OnClientClick en la secuencia de comandos de cliente que se debe ejecutar.

En el ejemplo de código siguiente se muestra cómo agregar un evento Click de secuencia de comandos de cliente a un control Button.

<%@ Page Language="C#" %>
<script runat="server">
protected void Button1_Click(Object sender, EventArgs e)
{
  Label1.Text = "Server click handler called.";
}
</script>

<html  >
<body>
<form id="form1" runat="server">
  <asp:Button ID="Button1" Runat="server"
    OnClick="Button1_Click"
    OnClientClick="return confirm('Ready to submit.')"
    Text="Test Client Click" />
  <br />
  <asp:Label ID="Label1" Runat="server" text="" />
</form>
</body>
</html>
Guarda   |   Imprime   |   Recomienda
  • email
  • Print
  • PDF
  • RSS
  • Google Bookmarks
  • Technorati
  • Meneame
  • Digg
  • TwitThis
  • MySpace
  • Yahoo! Bookmarks
  • del.icio.us
  • Facebook
  • Bitacoras.com
  • Live
  • StumbleUpon
  • Wikio
  • Netvibes
  • BarraPunto

Otros artículos de esta serie:

Publicar un Comentario

Si es la primera vez que escribes, tu comentario será moderado por un administrador.

Con el fin de garantizar un ambiente de debate respetuoso, no se permitirán comentarios:

  • insultantes, difamatorios, racistas, sexistas, y/o discriminatorios
  • excesivamente críticos con otros participanes
  • que no aporten nada, sin sentido o repetidos
  • con enlaces considerados publicidad o spam
  • con material protegido por derechos de autor
*
*