2 回答

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

TA貢獻1921條經(jīng)驗 獲得超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();
}
第一個事件為更新成功后觸發(fā)的吧.
- 2 回答
- 0 關(guān)注
- 705 瀏覽
添加回答
舉報