Foros del Web » Programación para mayores de 30 ;) » .NET »

Cargar valores en un texto y que cambie en otro

Estas en el tema de Cargar valores en un texto y que cambie en otro en el foro de .NET en Foros del Web. Hola a todos, tengo dos Textbox's, Textbox1 y Textbox2, como puedo hacer que cuando introduzca un numero en el Textbox1, por ejemplo 2, en el ...
  #1 (permalink)  
Antiguo 06/07/2005, 09:39
Avatar de charlytesis  
Fecha de Ingreso: agosto-2003
Ubicación: La Paz - Bolivia
Mensajes: 207
Antigüedad: 20 años, 8 meses
Puntos: 1
Cargar valores en un texto y que cambie en otro

Hola a todos, tengo dos Textbox's, Textbox1 y Textbox2, como puedo hacer que cuando introduzca un numero en el Textbox1, por ejemplo 2, en el Textbox2 automaticamente me haga una operacion como 2(del Textbox1)*5 y en el Textbox2 me aparezca 10, esto en ASP.NET, en el VB.NET hay un evento, pero me di cuenta que el ASP, no lo hay, que puedo hacer???
__________________

Saludos desde el corazón de América.....BOLIVIA
Da lo mejor de ti, que siempre será recompensado


  #2 (permalink)  
Antiguo 06/07/2005, 10:12
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
te recomiendo hacerlo por javascript, ya que, agregar el evento onkeypress a un textbox sería muy pesado, es decir, cada vez que pulse una tecla vaya al servidor, vuelva y recarge.........

por javascript sería:

textbox1.Attributes.add("onkeypress","mifuncion(th is)")

PD: el this no estoy seguro de que sea this, pero creo recordar que sí
  #3 (permalink)  
Antiguo 06/07/2005, 14:41
Avatar de charlytesis  
Fecha de Ingreso: agosto-2003
Ubicación: La Paz - Bolivia
Mensajes: 207
Antigüedad: 20 años, 8 meses
Puntos: 1
La verdad ya le busque por todo lado y no encuentro la manera, de hacerlo, donde especifico, que lo que escriba + la operacion se vaya a mi otro texbox??
__________________

Saludos desde el corazón de América.....BOLIVIA
Da lo mejor de ti, que siempre será recompensado


  #4 (permalink)  
Antiguo 07/07/2005, 00:35
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
en una función javascript, lo que te he puesto lo pones el page_load de tu pagina, y luego te creas una función javascript en el aspx

[PHP]
<script>
function mifunction(o object)
{
document.getElementById('recibe').value = 2 * o.value
}
</script>
[PHP]

siendo "recibe" el textbox donde aparecere el resultado. (deberías revisar la sintaxis, en el foro de javascript y convertirlos en int antes de operarlo que no me acuerdo como se hace).


Otra forma de hacerlo es operar cuando ya ha terminado de escribir, eso lo haces directamente en el code, por ejemplo:
[PHP]
private sub TextBox1_TextChanged(byval sender as object, byval e as EventArgs) Handles TextBox1.TextChanged
if isnumeric(textbox1.Text)
textbox2.text = TextBox1.Text * 2
Else
Response.Write("<script>window.alert('Debes introducir un número);</script>")
end if
end sub
[PHP]

Esto sería más fácil, pero se realizaría sólo cuando el TextBox1 pierda el foco y haya cambiado su valor.

OK??
  #5 (permalink)  
Antiguo 07/07/2005, 08:33
Avatar de charlytesis  
Fecha de Ingreso: agosto-2003
Ubicación: La Paz - Bolivia
Mensajes: 207
Antigüedad: 20 años, 8 meses
Puntos: 1
Gracias Jose_minglein2, utilice el script que me funciono a la perfección, ahora tengo un pequeño problema, recuerdas que lo multiplicas por un 2, quisiera que en vez de ese 2 ingrese una variable desde mi pagina .aspx, ya le aumente a la llamda y la funcion un campo de variable pero no me funciona, que estoy haciendo mal?? Talvez sea porque le estoy mandando una variable de tipo double??

function mifuncion(o,numero)
{
document.getElementById('textbox2').value = o.value / numero
}
__________________

Saludos desde el corazón de América.....BOLIVIA
Da lo mejor de ti, que siempre será recompensado


  #6 (permalink)  
Antiguo 07/07/2005, 08:45
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
de donde sacas número????Depende de como lo cojas podría venir ser dicho error, aparte, que error te da???Tambien puedes hacer esto, para asegurarte de no tener problemas con el double o algo así

function mifuncion(o,numero)
{
document.getElementById('textbox2').value = parseFloat(o.value) / parseFloat(numero)
}

Pero seguro que no es de ahí el error.
  #7 (permalink)  
Antiguo 07/07/2005, 09:08
Avatar de charlytesis  
Fecha de Ingreso: agosto-2003
Ubicación: La Paz - Bolivia
Mensajes: 207
Antigüedad: 20 años, 8 meses
Puntos: 1
bueno lo que pasa es que directamente ya no me escribe nada en el textbox2, me sale en blanco, mande esta funcion:

Me.textbox1.Attributes.Add("onkeypress", "mifuncion(this," & numero & ");")

pero ahora no me sale nada..............
__________________

Saludos desde el corazón de América.....BOLIVIA
Da lo mejor de ti, que siempre será recompensado


  #8 (permalink)  
Antiguo 07/07/2005, 10:03
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Me.textbox1.Attributes.Add("onkeypress", "mifuncion(this," & Convert.tostring(numero).Replace(",",".") & ");")

Ya que vb pasara el decimal con , y la funcion entonces lo interpretará como otro parametro, los errores de javascript te salen abajo a la izquierda (en la barra de estado, donde pone listo, cargado ...) para ver que fallos te da.
  #9 (permalink)  
Antiguo 07/07/2005, 10:13
Avatar de charlytesis  
Fecha de Ingreso: agosto-2003
Ubicación: La Paz - Bolivia
Mensajes: 207
Antigüedad: 20 años, 8 meses
Puntos: 1
Gracias Jose_minglein2 era por otra razon que no salia el resultado, bueno y te explico que es lo que pasa, la funcion que me mandaste lo puse en el Page_Load y tu sabes bien que se carga al principio, bueno luego de eso realizo algunas operaciones y obtengo finalmente una variable XX y el valor de esa variable la necesito mandar a la funcion que tengo dentro del Page_load, como le hago??

Tengo declarada esa variable como
Public XX as string

o talvez la funcion que me mandaste la puedo poner en otro lugar del codigo?
__________________

Saludos desde el corazón de América.....BOLIVIA
Da lo mejor de ti, que siempre será recompensado


  #10 (permalink)  
Antiguo 07/07/2005, 10:26
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Claro, la puedes poner donde quieras, p.ej

Código PHP:
private sub button1_click(byval sender as objectbyval e as eventargshandles button1.click
dim a 
as decimal 5.8
Me
.textbox1.Attributes.Add("onkeypress""mifuncion(this," Convert.tostring(a).Replace(",",".") & ");")
end sub 
  #11 (permalink)  
Antiguo 07/07/2005, 13:40
Avatar de charlytesis  
Fecha de Ingreso: agosto-2003
Ubicación: La Paz - Bolivia
Mensajes: 207
Antigüedad: 20 años, 8 meses
Puntos: 1
Nuevamente gracias Jose_minglein2, te cuento que me funciono de maravilla, pero ahora tengo un pequeño problema, despues de esas dos cajas de texto tento un combo, despues de colocar los datos, quiero irme directamente al combo y mi pagina se me borra o es como si no apareciera nada, que podria ser??? alguna solucion??
__________________

Saludos desde el corazón de América.....BOLIVIA
Da lo mejor de ti, que siempre será recompensado


  #12 (permalink)  
Antiguo 07/07/2005, 14:34
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
La verdad, es que no he entendido lo que quieres decir charlytesis, a que te refieres con ir directamente al combo???y a qe se te borra???
  #13 (permalink)  
Antiguo 07/07/2005, 14:41
Avatar de charlytesis  
Fecha de Ingreso: agosto-2003
Ubicación: La Paz - Bolivia
Mensajes: 207
Antigüedad: 20 años, 8 meses
Puntos: 1
bueno despues de haber colocado un numero en el textbox, no presiono ni enter ni tab para ir al combobox, que seria mi siguiente control, si no que con el mouse directamente hago un click en la pestaña del combobox, y toda la pantalla se me pone en blanco, y no puedo ver ninguno de mis controles....
__________________

Saludos desde el corazón de América.....BOLIVIA
Da lo mejor de ti, que siempre será recompensado


  #14 (permalink)  
Antiguo 07/07/2005, 15:02
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Es un drop personalizado??? Tiene el drop autopostback="true"???Te lo hace antes de seleccionar nada, es decir al desplegar???Tienes alguna función asociada la drop??

(Es muy raro lo que te pasa friend)
  #15 (permalink)  
Antiguo 07/07/2005, 15:05
Avatar de charlytesis  
Fecha de Ingreso: agosto-2003
Ubicación: La Paz - Bolivia
Mensajes: 207
Antigüedad: 20 años, 8 meses
Puntos: 1
no es ningun drop personlaizado, y si, si tiene el autopostback en true, ya que sin ello, no puedo ver mis datos, y tampoco puedo seleccionar nada, de nada como te dije apenas toco el combobox, y el explorer se me pone en blanco, en el drop solo cargo algunas datos de mi base y hace un selectchangedindex......
__________________

Saludos desde el corazón de América.....BOLIVIA
Da lo mejor de ti, que siempre será recompensado


  #16 (permalink)  
Antiguo 07/07/2005, 23:03
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
El autopostback es para que permita lanzar eventos al servidor, pero no tiene nada que ver para ver datos o seleccionarlos. Lo único que hace es que cuando selecciones algo lance un evento al server.

Prueba quitandoselo, y si funciona pero te es imprescindible, buscaremos una solución altenativa al autopostback.


PD: pon la etiqueta html de tu combo y los handles que tengas asociados en el code al mismo (solo los eventos), porque seguramene estés llamando al server en el "onfocus" del drop.
  #17 (permalink)  
Antiguo 08/07/2005, 07:36
Avatar de charlytesis  
Fecha de Ingreso: agosto-2003
Ubicación: La Paz - Bolivia
Mensajes: 207
Antigüedad: 20 años, 8 meses
Puntos: 1
El AutoPostBack es imprecindible para mi ya que utilizo el selctindexchanged, y sin eso si funciona bien, habria alguna otra forma de arreglar el problema??
__________________

Saludos desde el corazón de América.....BOLIVIA
Da lo mejor de ti, que siempre será recompensado


  #18 (permalink)  
Antiguo 08/07/2005, 09:04
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Pues en vez del autoPostback="true", lanzalo tu manualmente, es decir en el page_load de tu página:


micombobox.Attributes.Add("onchange","javascript:_ _doPostBack('seleccion','');")
y en tu code, en el page load tambien

if ispostback

if request.form("__eventtarget") = "seleccion"
'Lo que quieras que haga

De todas formas, no tienes más eventos en tu combo???Porque es raro que antes de seleccionar un elemento te lance al server, como tienes definidio el SelectedIndexChanged en tu code??? Y como defines el drop en el html????Como te lo traduce a HTML???
  #19 (permalink)  
Antiguo 11/07/2005, 10:48
Avatar de charlytesis  
Fecha de Ingreso: agosto-2003
Ubicación: La Paz - Bolivia
Mensajes: 207
Antigüedad: 20 años, 8 meses
Puntos: 1
copie tu codigo y funciona cuando lo hago paso a paso, porque si lo hago correr de uno no me funciona, no tengo mas eventos en mi combo....

En mi funcion de cargar mis datos en mi combo, primero lleno los datos, y para llamar al selectindexchange hago lo siguiente:

If combo.SelectedItem.Text = ("NOMBRE") Then
combo_SelectedIndexChanged(Me, Nothing)
End If

ingresa al combo_SelectedIndexChanged.....
__________________

Saludos desde el corazón de América.....BOLIVIA
Da lo mejor de ti, que siempre será recompensado


  #20 (permalink)  
Antiguo 11/07/2005, 10:56
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
¿donde pones eso???

If combo.SelectedItem.Text = ("NOMBRE") Then
combo_SelectedIndexChanged(Me, Nothing)
End If


creo que eso es seguramente lo que te esté dando error, lo de que se quedase la página en blanco, me parece que estás entrando en un bucle infinito, no puedes llamar a la función cambia si cambio, no se si me explico.
  #21 (permalink)  
Antiguo 11/07/2005, 11:32
Avatar de charlytesis  
Fecha de Ingreso: agosto-2003
Ubicación: La Paz - Bolivia
Mensajes: 207
Antigüedad: 20 años, 8 meses
Puntos: 1
Lo coloco en mi funcion de cargar los datos en mi combo, primero lleno los datos, y para llamar al selectindexchange hago lo siguiente:

private sub cargarcombo(....)
''aqui llamo a mi BD para cargar mis datos....
''........

If combo.SelectedItem.Text = ("NOMBRE") Then
combo_SelectedIndexChanged(Me, Nothing)
End If

end sub

Entiendo, entonces como te dije si le quito este if y lo coloco en la __dopostback te todas formas no me sale, alguna otra idea??
__________________

Saludos desde el corazón de América.....BOLIVIA
Da lo mejor de ti, que siempre será recompensado


  #22 (permalink)  
Antiguo 11/07/2005, 15:12
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Bien, una cosa, si no me equivoco, a la hora de cargar los datos, ya estás llamando al evento???No entiendo porque.

Segundo supongo que ls datos del combo los estarás cargando dentro de:

if not ispostback
cargarcombo()
end if

porque si no lo que estás haciendo, como te dije es un bucle infinito, es decir, entra en el page_load - carga el combo - llama a selectedindexchanged - entra en el page_load -carga el combo ................

y así sucesivamente.
  #23 (permalink)  
Antiguo 11/07/2005, 15:37
Avatar de charlytesis  
Fecha de Ingreso: agosto-2003
Ubicación: La Paz - Bolivia
Mensajes: 207
Antigüedad: 20 años, 8 meses
Puntos: 1
no, solo ingresa la primera vez, ya hice la prueba, paso a paso, y ya no entra dentro del if not postback.....alguna otra solucion?
__________________

Saludos desde el corazón de América.....BOLIVIA
Da lo mejor de ti, que siempre será recompensado


  #24 (permalink)  
Antiguo 11/07/2005, 23:07
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
sigo sin ver claro lo de
If combo.SelectedItem.Text = ("NOMBRE") Then
combo_SelectedIndexChanged(Me, Nothing)
End If
Pon tu page_load y el code relacionado con el combo.
  #25 (permalink)  
Antiguo 12/07/2005, 07:07
Avatar de charlytesis  
Fecha de Ingreso: agosto-2003
Ubicación: La Paz - Bolivia
Mensajes: 207
Antigüedad: 20 años, 8 meses
Puntos: 1
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not (Page.IsPostBack) Then
Call CargarCombo1()
Call CargarCombo2()
Call CargarCombo3()
Call CargarCombo4()
End If
End Sub

Private Sub combo1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles combo1.SelectedIndexChanged

With Me.combo2
.DataSource = DS.Tables("tabla1")
.DataTextField = "nombre"
.DataValueField = "codigo"
End With

Me.combo2.DataBind()

If Me.combo2.SelectedItem.Text = ("codigo") Then
combo2_SelectedIndexChanged(Me, Nothing)
End If

End Sub

y asi para los otros combos.........

y el combo esta con Autopostback=true
__________________

Saludos desde el corazón de América.....BOLIVIA
Da lo mejor de ti, que siempre será recompensado


  #26 (permalink)  
Antiguo 12/07/2005, 08:41
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Lo primero decirte que en VB.NET no te hacen falta los call, simplemente con que llames a la función sobra.

Segundo si sólo tienes ese código es extremadamente raro (por no decir imposible) que te suceda eso que dices de la página en blanco, por otra, esto:

Código PHP:
If Me.combo2.SelectedItem.Text = ("codigo"Then
combo2_SelectedIndexChanged
(MeNothing)
End If 
Supongo que lo haces para que si cambia un combo, cambien el resto de forma sucesiva, no es así????Es que no veo muy bien el sentido de ese fragmento de código. Corrigeme si me equivoco:

1- Cargas tus combos

2- Si cambias combo1, recargas combo2 (supongo que con datos distintos a los que tenía), si después de la recarga queda seleccionado el elemento cuyo valor es "codigo", llamas al metodo cambio de combo2 .....


Una cosa, antes de que se me olvide, cuando le pasas Me a la función referncias a la página, lo cual no es correcto, ya que deberías pasarle el combo2, entiendes??

Por último asegurate (por si acaso) que en un handles combo1 no llames a combo1_selectedindexchanged, es decir asegurate de que llamas siempre al otro combo (y por supuesto que en el ultimo combo no vuelvas al combo1), porque si no entrarías en bucle infinito, es decir

en combo1_selectedindexchange->combo2
en combo2...->combo3
en combo3 ->combo4
en combo4 ->combo5

y ya, para lo que te digo de no entrar en bucle infinito. De todas formas además de revisarlo ejecutalo paso a paso, pon puntos de interrupción en cada una de las funciones de tu página y mira cuando entra en cada una y si lo hace en el momento indicado.
  #27 (permalink)  
Antiguo 12/07/2005, 10:24
Avatar de charlytesis  
Fecha de Ingreso: agosto-2003
Ubicación: La Paz - Bolivia
Mensajes: 207
Antigüedad: 20 años, 8 meses
Puntos: 1
Los dos pasos que me dijiste son exactamente como entendiste...olvide mencionarte que con el selectindezchange del ultimo combo(donde esta el error) cargo un textbox....

Private Sub combo5_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles combo5.SelectedIndexChanged
Dim strCadenaConexion As String
strCadenaConexion = ObtenerCadenaConexion()
Dim oleConn As New OleDb.OleDbConnection(strCadenaConexion)
Dim oleComm As New OleDb.OleDbCommand("", oleConn)
Dim oleDA As New OleDb.OleDbDataAdapter("", oleConn)

oleConn.Open()

Dim strCargo

oleComm.CommandText = "SELECT nombre FROM ciudad WHERE " & _
" nom_cod='" & Me.combo5.SelectedValue & "'"
strCargo = oleComm.ExecuteScalar

oleConn.Close()

Me.txtCargo.Text = strCargo

Me.txtCargo.DataBind()
End Sub

y como te dije al ejecutarlo paso a paso, entra en las condiciones que debe entrar, y no hace ningun bucle infinito, ya que al hacerlo paso a paso, funciona perfectamente, pero no asi cuando lo hago correr de una.......
__________________

Saludos desde el corazón de América.....BOLIVIA
Da lo mejor de ti, que siempre será recompensado


  #28 (permalink)  
Antiguo 12/07/2005, 10:54
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Me.txtCargo.DataBind() te sobra, ¿DataBind en un textbox???

Yo pondría

Me.txtCargo.Text = strCargo.toString()

A parte de eso y si dices que ejecutando paso a paso te va perfectamente......Buf no se macho, haz una cosa, ves haciendolo progresivo haber donde te deja de funcionar, es decir, primero pon solo con autopostback a true en el combo 1 para que recarge combo2, si funciona, pones a true el combo2 para el 3, y así sucesivamente, haber que pasa, al igual en las llamadas, es decir, primero, en el selectedindexchaged de los combos de 2 al 5, quita las llamadas al selectedindexchanged del superior, no se si me explico.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:00.