ASP.NET - OnClick ó OnFocus en TextBox ASPX.Net y C#

 
Vista:
sin imagen de perfil

OnClick ó OnFocus en TextBox ASPX.Net y C#

Publicado por carlos (6 intervenciones) el 06/09/2016 03:23:08
Saludos a todos, ante todo un cordial saludo, estoy iniciando en el mundo del desarrollo web y me ha costado (actualmente soy developer desktop), estoy haciendo una simple aplicación en VS.Net 2010 ASPX con C#, y tengo el siguiente escenario y no he podido resolver, no entiendo los ejemplos, planteo entonces el problema:

Tengo en una pagina los siguientes controles:

TextBox id="TxtTitulo"
Label id="LblMensaje"

Lo que quiero es que simplemente cuando haga OnClick ó OnFocus en TxtTitulo este me invoque un método llamado oMet_LimLabel(), es decir, voy a limpiar el labe (LblMensaje.Text = "") dentro del método que sera invocado desde el control TxtTitulo accionado por los eventos OnClick ó OnFocus

Dicho esto necesito que por favor me expliquen detalladamente sin omitir ningún paso, ya que no he podido resolver con todos los ejemplos que he encontrado me ha sido inútil, gracias de antemano y saludos...!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alain
Val: 12
Ha aumentado 1 puesto en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

OnClick ó OnFocus en TextBox ASPX.Net y C#

Publicado por Alain (4 intervenciones) el 06/09/2016 19:11:47
Hola, disculpa si hay algo que no haya entendido de tu problema. Lo primero es que en los entornos web hay dos modelos de programación: en el lado del servidor (server-side) y en el lado del clientes (client-side). Imagino que estés al tanto de las diferencias aunque hay algo de lo que escribes que me causa curiosidad, porque los eventos onClick y onBlur normalmente están asociados a client-side pero los controles aspx:TextBox y aspx:Label son de server-side. Te ilustro con dos ejemplos:

Ejemplo 1: En este web form hay dos controles como los que usas, pero notarás que no hay eventos onClick ni onBlur definidos por defecto, sino por ejemplo OnTextChanged, porque el control aspx:TextBox es una clase que se encuentra incluida en el namespace System.Web.UI.WebControls de .NET. Pero es server-side (puedes heredar de ella y agregar funcionalidades e incluso eventos).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="WebApplicationGridView.WebForm2" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
         <asp:Label ID="LblMensaje" runat="server" Text="Label"></asp:Label>
         <asp:TextBox ID="TxtTitulo" runat="server" OnTextChanged="TxtTitulo_TextChanged" AutoPostBack="true"></asp:TextBox>
    </div>
    </form>
 
</body>
</html>

Aquí en el código que se ejecuta en el fichero .cs (C# en el servidor) puedes cambiar el campo Text del Label (notar que en HTML no hay una propiedad Text, sin embargo aquí aparece porque esto no es HTML).

1
2
3
4
5
6
7
8
9
10
11
12
13
public partial class WebForm2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
 
    }
 
    protected void TxtTitulo_TextChanged(object sender, EventArgs e)
    {
        LblMensaje.Text = " "; //aqui puedes invocar una función también
    }
 
}

Para hacerte una idea un control aspx no es más que un wrapper de .NET para agrupar uno o varios controles HTML, de formas que cuando se ejecuta un Request al servidor, se ejecuta el código C# pero lo que se devuelve al cliente es HTML (el TextBox se devuelve como un input de HTML).

Ejemplo 2: usando JavaScript. En este ejemplo sí que estan esos eventos pero ya no son los controles de ASP.NET sino etiquetas de HTML (que .NET permite que se ejecuten en el servidor si le escribes runat="server"). Verás que el .cs está vacío porque en este ejemplo no se ejecuta código en el servidor, sino en el cliente. Por lo cual esto te vale no solo para ASP.NET sino para Java, PHP, porque no depende del servidor sino del cliente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplicationGridView.WebForm1" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
      <script type="text/javascript">
          function oMet_LimLabel() {
              var label = document.getElementById("LblMensaje");
              label.innerText = " ";
          }
      </script>
</head>
 
<body>
    <form id="form1" runat="server">
    <div>
        <label id="LblMensaje">Hola</label>
        <input type="text" id="TxtTitulo" onclick="oMet_LimLabel()"/>
    </div>
    </form>
</body>
</html>
 
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
 
        }
 
    }

En ambos ejemplos la funcionalidad es la misma, en uno se hace desde el servidor desde un evento definido en ASP.NET y en otro se hace desde el cliente. Espero te ayude. Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

OnClick ó OnFocus en TextBox ASPX.Net y C#

Publicado por carlos (6 intervenciones) el 06/09/2016 22:06:20
Hola estimado Alain, muchas gracias por la respuesta, aclarada la duda, gracias por tu tiempo y ayuda, muy apreciado, saludos...!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar