Foros del Web » Programando para Internet » ASPX (.net) »

no recargar completamente la pagina para validar un boton aceptar

Estas en el tema de no recargar completamente la pagina para validar un boton aceptar en el foro de ASPX (.net) en Foros del Web. Buenas... Mi problema es el siguiente: Tengo un Webform en donde cargo los datos de una persona desde una BD de MySQL y la idea ...
  #1 (permalink)  
Antiguo 18/11/2010, 14:19
Avatar de jhonjairo00  
Fecha de Ingreso: noviembre-2010
Ubicación: Bogotá D.C.
Mensajes: 31
Antigüedad: 14 años
Puntos: 6
no recargar completamente la pagina para validar un boton aceptar

Buenas...

Mi problema es el siguiente:

Tengo un Webform en donde cargo los datos de una persona desde una BD de MySQL y la idea es poder modificar estos datos; hasta ahí normal, el problema es cuando cambio alguno de los datos que ya venian desde la BD, porque si es algún dato nuevo si los graba en la BD, pero sino no me hace el "update", es decir yo traigo el registro No 1 de nombre Pepito Perez con documento XXXXX etc. este registro, digamos que no tiene el campo de la ciudad de nacimiento, se lo ponemos... digamos Nueva York y que el documento lo voy a cabiar a XXXXY, al pulsar el boton Aceptar, recarga la página antes de validar la acción del botón, el problema es que los datos modificados (en este caso el documento) vuelven a tomar los datos con los que venian desde la base de datos y en ese caso solo me hace la actualización del campo vacío (que acá era la ciudad de nacimiento).

Yo se que el problema es la forma en como estoy manejando el Asp.net, es que la verdad apenas es mi primer sitio y no se como controlar esos eventos...

Bueno si alguien me puede ayudar se lo agradeceria...
  #2 (permalink)  
Antiguo 18/11/2010, 14:34
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 18 años, 1 mes
Puntos: 22
Respuesta: no recargar completamente la pagina para validar un boton aceptar

Por las caracteristicas que dices aunque no entiendo muy bien creo que el problema es el orden en que ejecutas el codigo.
  #3 (permalink)  
Antiguo 19/11/2010, 08:25
Avatar de jhonjairo00  
Fecha de Ingreso: noviembre-2010
Ubicación: Bogotá D.C.
Mensajes: 31
Antigüedad: 14 años
Puntos: 6
Respuesta: no recargar completamente la pagina para validar un boton aceptar

Bueno, primero que todo gracias por responder...

A ver si me hago entender...

Este es el código que tengo,

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim ddl As New ConsultasWeb
ddl.Llenado_DropDownList(ddl.Consulta("sexo"), "CodSexo", "DesSexo", DDLTipSex)
ddl.Llenado_DropDownList(ddl.Consulta("tipdocident idad"), "TipDocIde", "DesDocIde", DDLTipDocu)
Dim DsEstudiante As New DataSet
DsEstudiante = DirectCast(Session("DsEstudiante"), DataSet)
For Each DataRow In DsEstudiante.Tables(0).Rows
If DataRow("NumDocPers").ToString <> Nothing Then
TxbNoDocu.Text = DataRow("NumDocPers").ToString
End If
If DataRow("TipSex").ToString <> Nothing Then
DDLTipSex.SelectedIndex = DataRow("TipSex")
End If
If DataRow("Ape1Pers").ToString <> Nothing Then
TxbPriApe.Text = DataRow("Ape1Pers").ToString
End If
If DataRow("Ape2Pers").ToString <> Nothing Then
TxbSegApe.Text = DataRow("Ape2Pers").ToString
End If
If DataRow("Nom1Pers").ToString <> Nothing Then
TxbPriNom.Text = DataRow("Nom1Pers").ToString
End If
If DataRow("Nom2Pers").ToString <> Nothing Then
TxbSegNom.Text = DataRow("Nom2Pers").ToString
End If
If DataRow("DirResPers").ToString <> Nothing Then
TxbDirRes.Text = DataRow("DirResPers").ToString
End If
If DataRow("BarPers").ToString <> Nothing Then
TxbBarrio.Text = DataRow("BarPers").ToString
End If
If DataRow("TelResPers").ToString <> Nothing Then
TxbTelRes.Text = DataRow("TelResPers").ToString
End If
If DataRow("CelPers").ToString <> Nothing Then
TxbTelCel.Text = DataRow("CelPers").ToString
End If
If DataRow("EmailPers").ToString <> Nothing Then
TxbEmail.Text = DataRow("EmailPers").ToString
End If
If DataRow("NacioPers").ToString <> Nothing Then
TxbNacio.Text = DataRow("NacioPers").ToString
End If
If DataRow("LugNacPers").ToString <> Nothing Then
TxbLugNac.Text = DataRow("LugNacPers").ToString
End If
If DataRow("EpsPers").ToString <> Nothing Then
TxbEps.Text = DataRow("EpsPers").ToString
End If
If DataRow("RhPers").ToString <> Nothing Then
TxbRh.Text = DataRow("RhPers").ToString
End If
If DataRow("AlerPers").ToString <> Nothing Then
TxbAlergias.Text = DataRow("AlerPers").ToString
End If
If DataRow("EstratoPers").ToString <> Nothing Then
TxbEstraEst.Text = DataRow("EstratoPers").ToString
End If
If DataRow("RelPers").ToString <> Nothing Then
TxbReligion.Text = DataRow("RelPers")
End If
If DataRow("TipDocPers").ToString <> Nothing Then
DDLTipDocu.SelectedIndex = DataRow("TipDocPers").ToString
End If
Next
End Sub

Protected Sub BtnAceptar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnAceptar.Click
If Trim(TxbNoDocu.Text) <> "" And Trim(TxbNoDocu.Text) <> "" And Trim(TxbPriNom.Text) <> "" And Trim(TxbPriApe.Text) <> "" Then
Dim varNomCom As String
varNomCom = TxbPriApe.Text.ToString.Trim
If TxbSegApe.Text <> Nothing Then
varNomCom = varNomCom & " " & TxbSegApe.Text.ToString.Trim
End If
varNomCom = varNomCom & " " & TxbPriNom.Text.ToString.Trim
If TxbSegNom.Text <> Nothing Then
varNomCom = varNomCom & " " & TxbSegNom.Text.ToString.Trim
End If
If ConexionDB.connection.State <> ConnectionState.Open Then
ConexionDB.abrir()
End If

Dim SQLUpdate As String = "UPDATE personas SET Ape1Pers = '" & TxbPriApe.Text & "', Ape2Pers = '" & TxbSegApe.Text.ToString & "', Nom1Pers = '" & TxbPriNom.Text & "', Nom2Pers = '" & TxbSegNom.Text.ToString & "',"
SQLUpdate = SQLUpdate & " NomComPers = '" & varNomCom & "', TipDocPers = '" & DDLTipDocu.SelectedValue & "', NumDocPers = '" & TxbNoDocu.Text & "', TipSex = '" & DDLTipSex.SelectedValue & "', DirResPers = '" & TxbDirRes.Text.ToString & "', BarPers = '" & TxbBarrio.Text & "', TelResPers = '" & TxbTelRes.Text.ToString & "', CelPers = '" & TxbTelCel.Text.ToString & "', EmailPers = '" & TxbEmail.Text.ToString
SQLUpdate = SQLUpdate & "', EpsPers = '" & TxbEps.Text & "', RhPers = '" & TxbRh.Text & "', AlerPers = '" & TxbAlergias.Text & "', EstratoPers = " & TxbEstraEst.Text & ", RelPers = '" & TxbReligion.Text & "'"
SQLUpdate = SQLUpdate & " WHERE ConsPersona = " & Session("estudiante")
Dim ComandUpdate As New OdbcCommand(SQLUpdate, ConexionDB.connection)
Dim UpdateData As New OdbcDataAdapter
UpdateData.UpdateCommand = ComandUpdate.ExecuteScalar()

ConexionDB.cerrar()

Response.Redirect("WInfPad.aspx")
End If

End Sub

Lleno los textbox con un dataset que está cargado con los resultados de una consulta previa y manejo los if para controlar si existen datos vacíos, eso lo hace bien, pero cuando presiono el botón aceptar, lo primero que hace es recargar la misma página que a proposito se llama "WInfEst.aspx", entonces si yo le he hecho alguna modificación a los campos que no venian vacíos, pues no los toma porque vuelve y les pone el valor que trae desde la consulta, obvio a los que si vienen vacíos si les carga el valor que he puesto porque no les cambia el valor del textbox gracias a los If, luego de esto si hace lo que está dentro del Protected Sub BtnAceptar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnAceptar.Click
  #4 (permalink)  
Antiguo 19/11/2010, 08:57
Avatar de jhonjairo00  
Fecha de Ingreso: noviembre-2010
Ubicación: Bogotá D.C.
Mensajes: 31
Antigüedad: 14 años
Puntos: 6
Respuesta: no recargar completamente la pagina para validar un boton aceptar

jajaja

Ya lo solucione, sólo faltaba esta instrucción

If Not Page.IsPostBack Then

End If

inmediatamente de
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

y se cierra al final del bloque, lo que hace es que evita que la pagina se recargue si ya se habia hecho por primera vez... nose si la explicación sea la más exacta, pero funcionó...
  #5 (permalink)  
Antiguo 19/11/2010, 09:14
Avatar de lucasiramos  
Fecha de Ingreso: agosto-2004
Ubicación: Santa Rosa, La Pampa, Argentina
Mensajes: 1.484
Antigüedad: 20 años, 3 meses
Puntos: 13
Respuesta: no recargar completamente la pagina para validar un boton aceptar

Jejejeje, iba leyendo el problema y se me iba ocurriendo la solución. Efectivamente hay que colocar el "If Not Page.IsPostBack" en el load, sino te ocurre eso que te pasó. No se porque no viene por defecto ese texto, así nos evitamos estos dolores de cabeza, jejeje.

Saludos

Etiquetas: aceptar, recargar, botones, aspx
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 08:23.