Tengo un formulario que permite insertar, traer los datos y actualizarlos. Este formulario consta de un DropDownList, un ListBox y 6 CheckBox independientes y 2 botones Insertar, Actualizar . Insertar aparece cuando no hay ningun parametro por la url y modificar cuando sí se envían los parámetros.
Al registrar datos se realiza bien , inserta y luego lo direcciono a una página donde hay una cosulta en un GDview. A partir de este selecciono un registro para modificarlo y vuelvo a invocar el formulario inicial el boton insertar lo oculto y aparece el boton modificar, el formulario trae todos los datos bien de la bd es decir el DropDownList, ListBox y los CheckBox como los inserto el usuario.
El problema es que cuando se va a realizar un cambio en cualquiera de los campos el formulario no los toma.
protected void Page_Load(object sender, EventArgs e)
{
/*Looks for the laboratories*/
/*Trae los datos y si se quiere se pueden modificar*/
int CualSel;
if ((Request.QueryString["CodComp"]!= null)&&(Request.QueryString["CodLab"]!= null))
{
CualSel = 3;
LoadLaboratory(CualSel, Session["Company"].ToString());
RecoverLab(Request.QueryString["CodComp"],Request.QueryString["CodLab"]);
}
/*Los datos son nuevos los inserta*/
else
{
CualSel = 2;
LoadLaboratory(CualSel, Session["Company"].ToString());
}
}
/*Llena el DropDownList*/
protected void LoadLaboratory(int typeselect,string CodPlant)
{
/*Parameters of search*/
this.TxtComp.Text = CodPlant;
object[] datos = new object[7];
datos[0] = CodPlant; /*Code Company*/
datos[1] = 3; /*Type of Company, 3 Laboratories */
datos[2] = 1; /*State*/
datos[3] = ""; /*Nit*/
datos[4] = ""; /*Name or Trade name*/
datos[5] = "";
datos[6] = "";
ReglasEmpresa mylab = new ReglasEmpresa();
DataTable dtlab = mylab.blConsultViewCompany(datos,typeselect);
if (dtlab != null && dtlab.Rows.Count>0)
{
DropLaboratorios.DataValueField = dtlab.Columns[0].ToString();
DropLaboratorios.DataTextField = dtlab.Columns[3].ToString();
DropLaboratorios.DataSource = dtlab.DefaultView;
DropLaboratorios.DataBind();
}
}
/*Recupera la información de la bd*/
protected void RecoverLab(string CodComp, string Codlab)
{
ReglasLaboratorios mylab = new ReglasLaboratorios();
DataTable dtlab = mylab.blConsultViewLab(CodComp, Codlab, 1);
if (dtlab.Rows.Count > 0)
{
this.TxtComp.Text = dtlab.Rows[0][0].ToString();
this.DropLaboratorios.SelectedValue = dtlab.Rows[0][1].ToString();
this.LstTipo.SelectedValue = dtlab.Rows[0][24].ToString();
if (dtlab.Rows[0][19].ToString() == "Si")
{
this.ChkProteina.Checked = true;
}
if (dtlab.Rows[0][20].ToString() == "Si")
{
this.ChkGrasa.Checked = true;
}
if (dtlab.Rows[0][21].ToString() == "Si")
{
this.ChkSolidos.Checked = true;
}
if (dtlab.Rows[0][22].ToString() == "Si")
{
this.ChkColiformes.Checked = true;
}
if (dtlab.Rows[0][23].ToString() == "Si")
{
this.ChkMesofilos.Checked = true;
}
this.DropLaboratorios.Enabled = false;
// this.BtnAceptar.Visible = false;
//this.BtnModificar.Visible = true;
this.Submit1.Visible = false;
this.Submit2.Visible = true;
}
}
/*Boton Insertar este funciona bien*/
protected void Submit1_ServerClick(object sender, EventArgs e)
{
/*Recover information of the form*/
object[] datos = new object[9];
datos[0] = Session["Company"].ToString();
datos[1] = DropLaboratorios.SelectedItem.Value;
datos[2] = LstTipo.SelectedItem.Value;
datos[3] = "No";
datos[4] = "No";
datos[5] = "No";
datos[6] = "No";
datos[7] = "No";
if (ChkProteina.Checked == true)
{
datos[3] = "Si";
}
if (ChkGrasa.Checked == true)
{
datos[4] = "Si";
}
if (ChkSolidos.Checked == true)
{
datos[5] = "Si";
}
if (ChkMesofilos.Checked == true)
{
datos[6] = "Si";
}
if (ChkColiformes.Checked == true)
{
datos[7] = "Si";
}
datos[8] = "321654654";
ReglasLaboratorios mylab = new ReglasLaboratorios();
mylab.blInsertLaboratories(datos);
Response.Redirect("../xxxxx/xxxxx.aspx");
}
protected void Submit2_ServerClick(object sender, EventArgs e)
{
/*Recover information of the form*/
object[] datos = new object[9];
datos[0] = Session["Company"].ToString();
datos[1] = DropLaboratorios.SelectedItem.Value;
//Response.Write(datos[1]);
string valor,valor1,valor2,valor3,valor4,valor5;
valor = this.LstTipo.SelectedIndex.ToString();
Response.Write(valor);
if (this.LstTipo.SelectedIndex == 0)
{
valor = "Si";
}
else
{
valor = "No";
}
datos[2] = valor;
valor1 = ChkProteina.Checked.ToString();
Response.Write(valor1);
if (valor1 == "True")
{
datos[3] = "Si";
}
else
{
datos[3] = "No";
}
valor2 = ChkGrasa.Checked.ToString();
if (valor2 == "True")
{
datos[4] = "Si";
}
else
{
datos[4] = "No";
}
valor3 = ChkSolidos.Checked.ToString();
if (valor3 == "True")
{
datos[5] = "Si";
}
else
{
datos[5] = "No";
}
valor4 = ChkMesofilos.Checked.ToString();
if (valor4 == "True")
{
datos[6] = "Si";
}
else
{
datos[6] = "No";
}
valor5 = ChkColiformes.Checked.ToString();
if (valor5 == "True")
{
datos[7] = "Si";
}
else
{
datos[7] = "No";
}
datos[8] = "65496876";
ReglasLaboratorios mylab = new ReglasLaboratorios();
mylab.blUpdateLaboratories(datos);
RecoverLab(datos[0].ToString(), datos[1].ToString());
//Response.Redirect("xxxxx.aspx");
}
Lo he intentado con botones de html con botones de asp colocandole autopostback pero al cambiar la información vuelve y coloca los datos iniciales. Les agradecería mucho que me ayudarán