URGENTE!! Desencadenar evento desde textbox

12/03/2008 - 00:36 por Lu´pita | Informe spam
Hola!

Espero esten bien y alguien pueda ayudarme.

Lo que quiero hacer es lo siguiente:

Tengo 2 cajas de texto, en la primera escribo "45" y cuando posicioné el
cursor en la caja de texto 2 quiero que se guarde en la base de datos lo que
se escribio en la caja de texto 1.

Espero haberme explicado correctamente.

Gracias y Saludos...

Preguntas similare

Leer las respuestas

#1 mpccolorado
12/03/2008 - 01:35 | Informe spam
Primero te tenés q suscribir a un evento del textbox1. Para ello,
seleccionás el textbox y en la ventana propiedades ponés la vista de los
eventos y usás el evento Leave...
En el método q responde al evento, ponés el código necesario para ejecutar
el comando a la base de datos y listo...
Espero haberte ayudado...


"Lu´pita" escribió en el mensaje
news:
Hola!

Espero esten bien y alguien pueda ayudarme.

Lo que quiero hacer es lo siguiente:

Tengo 2 cajas de texto, en la primera escribo "45" y cuando posicioné el
cursor en la caja de texto 2 quiero que se guarde en la base de datos lo
que
se escribio en la caja de texto 1.

Espero haberme explicado correctamente.

Gracias y Saludos...

Respuesta Responder a este mensaje
#2 Lu´pita
12/03/2008 - 04:11 | Informe spam
Al entrar a la ventana de eventos del textbox no aparece el evento leave,
pudiera ser por que estoy utilizando un webform?

Gracias y Saludos...

"mpccolorado" wrote:

Primero te tenés q suscribir a un evento del textbox1. Para ello,
seleccionás el textbox y en la ventana propiedades ponés la vista de los
eventos y usás el evento Leave...
En el método q responde al evento, ponés el código necesario para ejecutar
el comando a la base de datos y listo...
Espero haberte ayudado...


"Lu´pita" escribió en el mensaje
news:
> Hola!
>
> Espero esten bien y alguien pueda ayudarme.
>
> Lo que quiero hacer es lo siguiente:
>
> Tengo 2 cajas de texto, en la primera escribo "45" y cuando posicioné el
> cursor en la caja de texto 2 quiero que se guarde en la base de datos lo
> que
> se escribio en la caja de texto 1.
>
> Espero haberme explicado correctamente.
>
> Gracias y Saludos...
>



Respuesta Responder a este mensaje
#3 Alberto Poblacion
12/03/2008 - 08:17 | Informe spam
"Lu´pita" wrote in message
news:
Al entrar a la ventana de eventos del textbox no aparece el evento leave,
pudiera ser por que estoy utilizando un webform?



Eso es más complicado. Como quieres grabar datos al abandonar el campo,
y la grabación de datos tendrás que hacerla en el servidor, necesitas que el
PC en el que se está visualizando la pantalla la transmita al servidor
cuando abandones el campo. Por lo tanto, es el navegador el que tiene que
interceptar ese evento y realizar la acción correspondiente. Y el navegador
no se puede programar con C#; tendrás que usar javascript.

En la parte cliente, puedes usar el evento OnBlur del textbox para
disparar una rutina en javascript que haga un postaback de la página. Y el
código necesario para hacer el postback lo puedes obtener en el lado
servidor con Page.ClientScript.GetPostBackEventReference (y tendrás que
inyectarlo dentro de la página aspx antes de enviarla al navegador). Al
hacer el postback, se recargará la página, con lo que te convendrá usar Ajax
y meter el código en un UpdatePanel para que no resulte un efecto
desagradable. También se te perderá el foco, con lo que convendrá que hagas
un SetFocus en la rutina de tratamiento del evento para colocarlo en la caja
de texto 2.
Puestos a usar Ajax, hay una alternativa más eficiente, que consiste en
hacer una retrollamada de red en el evento OnBlur del textbox1 que llame a
un servicio web (bien sea un .asmx o un método estático en la misma página)
que realice la grabación del dato. Esto te evita hacer la recarga de página
y llevar el control del foco.

En cualquiera de los casos, como ves, las cosas se complican
considerablemente. Esta operación que quieres hacer, que sería trivial en un
WinForm (como ya te han indicado en otro mensaje) se vuelve terriblemente
compleja por el hecho de ser un WebForm, ya que los webforms no están
diseñados para funcionar de esta forma.
Respuesta Responder a este mensaje
#4 LunNna
12/03/2008 - 12:15 | Informe spam
Hola,

Yo tengo una pagina en la cual el usuario escribe el un textbox un numero
que representa un porcentaje, y cuando sale del textbox automaticamente se
escribe en otro textbox el valor correspondiente a ese porcentaje.

El textbox donde va el porcentaje tiene la propiedad AutoPostBack en true, y
capturo el evento:

protected void txtPorcentaje_TextChanged(object sender, EventArgs e) {
//calculo del valor
}

no veo por qué no puedes usar esto y en lugar de calcular el valor llamas a
la rutina que guarda en la base de datos, o es que no entendi bien lo que
quieres hacer.

Espero te sirva.

Un saludo.

"Alberto Poblacion" wrote:

"Lu´pita" wrote in message
news:
> Al entrar a la ventana de eventos del textbox no aparece el evento leave,
> pudiera ser por que estoy utilizando un webform?

Eso es más complicado. Como quieres grabar datos al abandonar el campo,
y la grabación de datos tendrás que hacerla en el servidor, necesitas que el
PC en el que se está visualizando la pantalla la transmita al servidor
cuando abandones el campo. Por lo tanto, es el navegador el que tiene que
interceptar ese evento y realizar la acción correspondiente. Y el navegador
no se puede programar con C#; tendrás que usar javascript.

En la parte cliente, puedes usar el evento OnBlur del textbox para
disparar una rutina en javascript que haga un postaback de la página. Y el
código necesario para hacer el postback lo puedes obtener en el lado
servidor con Page.ClientScript.GetPostBackEventReference (y tendrás que
inyectarlo dentro de la página aspx antes de enviarla al navegador). Al
hacer el postback, se recargará la página, con lo que te convendrá usar Ajax
y meter el código en un UpdatePanel para que no resulte un efecto
desagradable. También se te perderá el foco, con lo que convendrá que hagas
un SetFocus en la rutina de tratamiento del evento para colocarlo en la caja
de texto 2.
Puestos a usar Ajax, hay una alternativa más eficiente, que consiste en
hacer una retrollamada de red en el evento OnBlur del textbox1 que llame a
un servicio web (bien sea un .asmx o un método estático en la misma página)
que realice la grabación del dato. Esto te evita hacer la recarga de página
y llevar el control del foco.

En cualquiera de los casos, como ves, las cosas se complican
considerablemente. Esta operación que quieres hacer, que sería trivial en un
WinForm (como ya te han indicado en otro mensaje) se vuelve terriblemente
compleja por el hecho de ser un WebForm, ya que los webforms no están
diseñados para funcionar de esta forma.



Respuesta Responder a este mensaje
#5 Alberto Poblacion
12/03/2008 - 14:05 | Informe spam
"LunNna" wrote in message
news:
[...]
El textbox donde va el porcentaje tiene la propiedad AutoPostBack en true,
y
capturo el evento: [...]



Cierto, cuando dije lo de meter un javascript en el OnBlur que haga un
postback se me olvidó comentar que hay una forma de que esto se genere
automáticamente, que consiste en poner a true el AutoPostBack. Pero en
cualquier caso, si no quieres que se vea el "repintado" de la página, sigue
siendo conveniente usar Ajax, y el foco hay que ponerlo a mano porque se
pierde durante el postback (tanto con Ajax como sin él). Y si quieres que la
página sea realmente ágil, es preferible hacer la grabación con una llamada
asíncrona a un servicio web (si estudias la librería cliente de asp.net Ajax
verás que no es demasiado complicado de hacer). En cualquiera de los casos
hay bastante diferencia respecto a un WinForm.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida