Cómo puedo hacer que se dispare el evento textchanged

Preguntado hace 1 año

JuanP

JuanP

481Distinciones de plata1Distinciones de bronce6
Editado hace 1 año
Votos
PositivosNegativosTotal
1 0 1
45 Visualizaciones
Compártelo: Compártelo en twitterCompártelo en Facebook

Buenas, el escenario es un buscador para una página web en asp.net, quiero que refresque el updatepanel según el usuario va pulsando teclas, pero el evento textchanged sólo salta cuando el control pierde el foco, entonces ¿no es este el evento que necesito? ¿es otro? ¿se configura de alguna manera especial?

Actualizando datos

3 Respuestas

Hace 1 año

Gabriel Molina
Votos
PositivosNegativosTotal
101

Hola, Juanp, es más o menos como te cuenta @Christian. No hay soporte de ese evento en asp.net de modo que te lo tienes que hacer tú. Se trata de capturar el evento KeyUp y llamar a la función __doPostBack(eventTarget, eventArgument). El primer argumento es el identificador del control y el segundo los argumentos (lo puedes pasar como ''). Esto provoca el postback. Falta capturar el evento en el servidor. Tendrías que poner esto en tu caja de texto:

OnTextChanged="txtCajaTexto_TextChanged" AutoPostBack="true" 

Y dentro del TextChanged ya lo que quieras. :)

Saludos.

Cerrar

Hace 1 año

Juan Quijano
Votos
PositivosNegativosTotal
303

Buenas, Tienes varias formas.

  • En Javascript puro:
    <'asp:TextBox ID="TextBox1" runat="server" onkeypress="return funcion(event)"></asp:TextBox>
  • Declarando el Javascript en el servidor:
    <'TextBox1.Attributes.Add("onkeypress", "return funcion(event)",'_blank' )");

Ambas dos requieren que la funcion javascript esté escrita en la página o en una libreria referenciada en la página.

Podrias investigar en utilizar algún plugin de JQuery, pero hasta allí no llego.

El uso de __doPostBack, a mí me ha dado problemas de duplicidad: Entrada en mi blog

Cerrar

Hace 1 año

Christian Córdoba
Votos
PositivosNegativosTotal
101

yo creo que el que te interesa a ti es el keyup más que el textchanged, el keyup se genera después de cada pulsación

Cerrar

Pues creía que sí estaba :S Llevo ya como un buen tiempo sin escribir .net y últimamente tiro javascript... Me debo haber confundido. Lo que sí puedes hacer es usar el onkeyup de javascript para detectar el evento y hacer una petición al servidor cada vez. No sé si habrá una forma "nativa" en asp de hacerlo Christian Córdoba hace 1 año
Hola, Christian, necesito que sea un evento de servidor, y no veo el keyup como evento de servidor, ¿se te ocurre algo? JuanP hace 1 año

Tu respuesta

Confirmación

Cerrar

Si sales ahora, perderás los cambios. ¿Estás seguro de querer salir?

Para participar en Babelias, debes estar convenientemente validado. Si ya eres usuario inicia sesión, si no lo eres, te puedes registrar.

Dar una respuesta

Trata de ser descriptivo, usa al menos 25 caracteres