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>