簡體   English   中英

Gridview更新不會在回發時保留

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM