[英]Gridview update doesn't persist on postback
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();
}
當我編輯文本框並輸入新值時,新值不會出現在文本框中。
我不確定你寫的代碼。 但我猜想,最初當你綁定你的網格視圖時,它在if(!IsPostback)條件之外。 所以在里面寫代碼!IsPostback條件如下圖所示:
If(!IsPostback)
{
grid();
}
如果,它不在!IsPostback條件,那么當您更新行時,它將首先轉到您的頁面加載,再次綁定網格然后它將轉到您的RowUpdating事件。 因此,你將永遠獲得舊的價值。
所以我建議把你的代碼綁定到if(!IsPostback)條件中的網格視圖。
為了向文本框提供新值,你必須綁定到網格新值,所以
breederdailybal.updatevaccine(breederdailypl);
必須更新要進入的數據
breederdailybal.GetBreederVaccination(breederdailypl);
在您的情況下數據可能不會更新
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.