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

Button actualiza la pagina antes de realizar su funcion

Estas en el tema de Button actualiza la pagina antes de realizar su funcion en el foro de ASPX (.net) en Foros del Web. Tengan un buen día. No se si el nombre del post está correcto, solo pretendia explicar bien mi problema con el título, bueno me ocurre ...
  #1 (permalink)  
Antiguo 31/05/2008, 22:50
 
Fecha de Ingreso: marzo-2007
Ubicación: En El salvador
Mensajes: 78
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Button actualiza la pagina antes de realizar su funcion

Tengan un buen día. No se si el nombre del post está correcto, solo pretendia explicar bien mi problema con el título, bueno me ocurre algo bastante extraño en un web form de mi aplicación web que estoy haciendo con C# y Oracle como DB. El problema es que este webform sirve para actualizar datos, es un formulario con campos los cuales se llenan con datos de un registro actual, de ese modo los modifico y al final presiono un Button para actualizar dichos datos, esta lógica se encuentra en el evento Click del boton.

La cuestión que estaba viendo es que si funciona pero no es evidente, por la siguiente razon: Cuando presiono el boton, no se ejecuta lo que se encuentra dentro del evento Click del boton, sino que se lleva a cabo el evento Load del webform, algo raro porque pienso que primero se deberia llevar a cabo el evento Click y luego el evento Load, pero aqui pasa lo contrario y por ello como se lleva a cabo el evento Load lo que he modificado se vuelve a como estaba antes y al final hace el update pero como resetea mis datos, queda igual. Aqui les dejo el código:

Code-behind
Código:
public partial class visorDataPaciente : System.Web.UI.Page
{
    metodosPaciente datosPaciente = new metodosPaciente();
    Hashtable entPaciente = new Hashtable();
    PACIENTETableAdapter adapPaciente = new PACIENTETableAdapter();
    protected void btnActualizarDatos_Click(object sender, EventArgs e)
    {
        decimal genero;
        if (rbGenero.SelectedValue == "1") { genero = 1; }
        else { genero = 0; }
        adapPaciente.updDatosPaciente(txtNombres.Text, txtApellidos.Text, txtDocIdentidad.Text,
                                        txtTelefono.Text, genero, txtDireccion.Text,
                                        Convert.ToDecimal(entPaciente["idPaciente"]));
        //Response.Redirect("visorDataPaciente.aspx");
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["idUsuario"] == null)
            Response.Redirect("noLogueado.aspx");
        if (Request.QueryString["newPac"] != null)
        {                      
            entPaciente = datosPaciente.getPaciente(Convert.ToDecimal(Request.QueryString["newPac"]));
        }
        else
        {
            int idPaciente = datosPaciente.getIdPaciente(Convert.ToInt32(Session["idUsuario"]));
            entPaciente = datosPaciente.getPaciente(Convert.ToDecimal(idPaciente));
        }
        txtDireccion.Text = entPaciente["direccion"].ToString(); txtApellidos.Text = entPaciente["apellidos"].ToString(); 
        txtDocIdentidad.Text = entPaciente["docIdentidad"].ToString(); txtNombres.Text = entPaciente["nombres"].ToString();
        txtTelefono.Text = entPaciente["telefono"].ToString();
        if (Convert.ToInt32(entPaciente["sexo"]) == 1)
            rbGenero.Items[0].Selected = true;
        else
            rbGenero.Items[1].Selected = true;
    }
aspx
Código:
<%@ Page Language="C#" MasterPageFile="~/plantilla.master" AutoEventWireup="true" CodeFile="visorDataPaciente.aspx.cs" Inherits="visorDataPaciente" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Button ID="btnActualizarDatos" runat="server" Style="z-index: 114; left: 457px;
        position: absolute; top: 592px" Text="Actualizar datos personales" Height="29px" OnClick="btnActualizarDatos_Click" Visible="False" Width="176px" />
<asp:TextBox ID="txtNombres" runat="server" Enabled="False" Style="z-index: 105; left: 415px;
        position: absolute; top: 282px" Width="199px"></asp:TextBox>
  #2 (permalink)  
Antiguo 02/06/2008, 06:37
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Button actualiza la pagina antes de realizar su funcion

El evento Load ocurre siempre antes de los eventos de control (como en tu caso el boton).

Lo que tenes que controlar es si es la primera vez que ingresa a la pagina o no, con un

If Page.IsPostBack == False {
'Aca pones el codigo que solo se ejecuta cuando carga la pagina por primera vez
}
  #3 (permalink)  
Antiguo 02/06/2008, 08:38
 
Fecha de Ingreso: marzo-2007
Ubicación: En El salvador
Mensajes: 78
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Button actualiza la pagina antes de realizar su funcion

Si, ahora si me funciona, te lo agradezco mdavila, si ya había escuchado lo del postback que es cuando se vuelve a cargar una pagina producto de una solicitud o el envío de parámetros pero crei que a pesar de ello el evento del botón se llevaria a cabo antes que el load así como en los formularios windows.
  #4 (permalink)  
Antiguo 02/06/2008, 09:27
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Button actualiza la pagina antes de realizar su funcion

De nada, suerte y saludos.
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 14:36.