0
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();

}

当我编辑文本框并输入新值时,新值不会出现在文本框中。

4

2 回答 2

2

我不确定您编写的代码。但我猜是,最初当您绑定网格视图时,它超出了 if(!IsPostback) 条件。所以在 !IsPostback 条件里面写代码,如下所示:

If(!IsPostback)
{
 grid();
}

如果它不在!IsPostback条件下,那么当您更新行时,它将首先转到您的页面加载,再次绑定网格,然后它将转到您的RowUpdating事件。因此,您将始终获得旧值。

所以我建议把你的代码在if(!IsPostback)条件下绑定网格视图。

于 2013-11-08T05:47:21.080 回答
0

要为文本框提供新值,您必须绑定到网格新值,所以

breederdailybal.updatevaccine(breederdailypl);

必须更新进入的数据

breederdailybal.GetBreederVaccination(breederdailypl);

在您的情况下,数据可能未更新

于 2013-11-08T05:51:56.813 回答