2 回答

TA貢獻1818條經驗 獲得超7個贊
這兩個都在更新數據時觸發,不同之外在于 GridView_RowUpdated 在更新到數據庫后發生,而 GridView_RowUpdating 在更新到數據庫之前發生。
一般在GridView_RowUpdating 中都會有一些處理:
1、有一些字段沒有在GridView中出現但是也需要更新(例如更新時間)
2、有一些字段出現在了GridView中,但是并不需要更新到數據庫
3、有一些字段需要轉換一下才可以更新(一般都是一些dropdownlist或者checkbox等)
4、其他需要對值在更新前進行一下處理的情況
總之,GridView_RowUpdating負責在把請求發送到數據庫之前,將數據處理得符合數據庫的要求
而GridView_RowUpdated是在數據庫更新完之后才執行的,一般會執行一些后期的綁定工作,比如重新綁定關聯的DetailView、FormView等

TA貢獻1921條經驗 獲得超9個贊
一般做行更新的時候用第二個就行了.
下面是使用的一塊例代碼塊:核心語句還是得到當前更新行的控件.
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
sqlcon = new SqlConnection(strCon);
string sqlstr = "update 表 set 字段1='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',字段2='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "',字段3='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "' where id='"
+ GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
sqlcom=new SqlCommand(sqlstr,sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
GridView1.EditIndex = -1;
bind();
}
第一個事件為更新成功后觸發的吧.
- 2 回答
- 0 關注
- 719 瀏覽
添加回答
舉報