protected void GVVAC_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
DataTable dt = new DataTable();
int st = Convert.ToInt32(GVVAC.DataKeys[e.RowIndex].Values[0].ToString());
TextBox txtage1 = (TextBox)GVVAC.Rows[e.RowIndex].FindControl("txtage");
TextBox txtvaccinename1 = (TextBox)GVVAC.Rows[e.RowIndex].Cells[3].Controls[1];
TextBox txtadmin1 = (TextBox)GVVAC.Rows[e.RowIndex].Cells[4].Controls[1];
TextBox txtdose1 = (TextBox)GVVAC.Rows[e.RowIndex].Cells[5].Controls[1];
breederdailypl.Age = Convert.ToInt32(txtage1.Text.ToString());
breederdailypl.vaccine = txtvaccinename1.Text.ToString();
breederdailypl.admin = txtadmin1.Text.ToString();
breederdailypl.dose = txtdose1.Text.ToString();
breederdailypl.Snum = st;
dt = breederdailybal.updatevaccine(breederdailypl);
//chkHatchdetails = objhatcheryBAL.updateHatchMasterdet(objhatcheryPL);
ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "UpdateDetails", "alert('Update Successful');", true);
GVVAC.EditIndex = -1;
grid();
}
当我编辑文本框并输入新值时,新值不会出现在文本框中。
答案 0 :(得分:2)
我不确定你写的代码。 但我猜想,最初当你绑定你的网格视图时,它在if(!IsPostback)条件之外。所以在里面编写代码!IsPostback条件如下所示:
If(!IsPostback)
{
grid();
}
如果,它不在!IsPostback 条件下,那么当您更新行时,它将首先转到您的页面加载,再次绑定网格然后它将转到 RowUpdating 强>事件。因此,你将永远获得旧的价值。
所以我建议你的代码在 if(!IsPostback)条件下绑定网格视图。
答案 1 :(得分:0)
为文本框提供新值,您必须绑定到网格新值,所以
breederdailybal.updatevaccine(breederdailypl);
必须更新
中的数据breederdailybal.GetBreederVaccination(breederdailypl);
在你的情况下数据可能没有更新