GridView_RowUpdating返回旧值



我有一个网格视图,其中有更新/删除行的功能。我使用存储过程将数据存储到SQL中。当我单击编辑按钮并更改现有值,并单击更新按钮后,我得到旧值。

我的代码是:
protected void grdNatureFormation_RowUpdating(object sender, System.Web.UI.WebControls.GridViewUpdateEventArgs e)
{
    ConnectionString = GetConnectionString();            
    LinkButton link = (LinkButton)grdNatureFormation.Rows[e.RowIndex].FindControl("btnUpdate");
    int id = Convert.ToInt32(link.CommandArgument);
    TextBox title = (TextBox)grdNatureFormation.Rows[e.RowIndex].FindControl("txtTitle");
    if(title != null)
    {
        using (SqlConnection Sqlcon = new SqlConnection(ConnectionString))
        {
            using (SqlCommand cmd = new SqlCommand())                
            {
                Sqlcon.Open();
                cmd.Connection = Sqlcon;
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = "NatureOfFormation";
                cmd.Parameters.Add(new SqlParameter("@ID", SqlDbType.Int)).Value = id;
                cmd.Parameters.Add(new SqlParameter("@Title", SqlDbType.VarChar)).Value = title.Text.Trim();
                cmd.Parameters.Add(new SqlParameter("@Action", SqlDbType.VarChar)).Value = "update";
                cmd.ExecuteNonQuery();
                grdNatureFormation.EditIndex = -1;
                LoadData();
            }
        }
    }            
}
protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        LoadData();
    }
}
private void LoadData()
{
    ConnectionString = GeneralMethods.GetConnectionString();
    SqlConnection Sqlcon = new SqlConnection(ConnectionString);
    SqlCommand cmd = new SqlCommand();
    try
    {
        Sqlcon.Open();
        cmd.Connection = Sqlcon;
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandText = "xxx";
        cmd.Parameters.Add(new SqlParameter("@Action", SqlDbType.VarChar, 50));
        cmd.Parameters["@Action"].Value = "select";
        SqlAda = new SqlDataAdapter(cmd);
        ds = new DataSet();
        SqlAda.Fill(ds);
        grdNatureFormation.DataSource = ds;
        grdNatureFormation.DataBind();
    }
    catch
    {
    }
    finally
    {
        if (Sqlcon.State == ConnectionState.Open)
            Sqlcon.Close();
        Sqlcon.Dispose();
        cmd.Dispose();
    }
}

我在互联网上搜索了这个问题,大多数帖子建议将数据绑定方法放在(!Page.IsPostBack)中,但在我的情况下,它已经处于相同的条件下,但没有得到价值。

我该怎么做才能在RowUpdating事件中获得新值?

RowUpdating在 gridview值更新之前被称为。您需要将代码放入RowUpdated事件处理程序中。

更多信息,参见手册:GridView Events

RowUpdating -在单击行Update按钮时发生,但在GridView控件更新行之前发生。

RowUpdated -在单击行更新按钮时发生,但在GridView控件更新行之后。

相关内容

  • 没有找到相关文章

最新更新