'按一下資料列的 [更新] 按鈕時發生 (但在 GridView 控制項更新資料列之前)
'利用更新前進行錯誤處理及防呆,或是手寫更新程式,必須寫在這裡。
Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs)Handles GridView1.RowUpdating
'e.Keys:取得欲更新那筆資料的PK值。
'e.Cancel:True表示取消更新動作。
'e.OldValues:取得更新那筆資料,除了PK欄位之外的原始值。
'e.NewValues:取得欲更新那筆資料,除了PK欄位之外的更新值。
'e.RowIndex:目前要更新這筆資料在GridView中的索引值。
'取值都同下方RowUpdated裡的方式
End Sub
'按一下資料列的 [更新] 按鈕時發生 (但在 GridView 控制項更新資料列之後)
Protected Sub GridView1_RowUpdated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdatedEventArgs)Handles GridView1.RowUpdated
'e.AffectedRows:更新筆數。
'e.Keys:取得欲更新那筆資料的PK值。
'e.OldValues:取得更新那筆資料,除了PK欄位之外的原始值。
'e.NewValues:取得欲更新那筆資料,除了PK欄位之外的更新值。
'e.KeepInEditMode:Boolean,是否讓GridView維持在編輯模式。
'e.Exception:若更新發生例外,可透過e.Exception取得例外相關資訊。
'e.ExceptionHandled:Boolean,當例外發生且e.ExceptionHandled沒有為True時,會值接在網頁上顯示例外的錯誤畫面。
'取cell裡的Label=================================================
Response.Write(GridView1.Rows(GridView1.EditIndex).Cells(4).Text) '此法僅能取到Label,取不到編輯狀態的TextBox
'取cell裡的TextBox===============================================
'取更新後的值
Response.Write(e.NewValues("Cost").ToString()) '方法一,Cost為欄位名
Response.Write(e.NewValues(0).ToString()) '方法二,0為第幾個TextBox
Response.Write(CType(GridView1.Rows(GridView1.EditIndex).Cells(5).Controls(1), TextBox).Text()) '方法三,5為GridView的第幾Cell,1為第1個編輯控制項
Response.Write(CType(GridView1.Rows(GridView1.EditIndex).FindControl("TextBox1"), TextBox).Text) '方法四,TextBox1為<EditItemTemplate>定義的TextBox ID
'取更新前的值
Response.Write(e.OldValues("Cost").ToString()) '方法一,4為GridView的
Response.Write(e.OldValues(4).ToString()) '方法二,4為GridView的第幾行
End Sub
笑一笑吧!