摘要
一般执行新增/修改完毕准备异动数据库前,通常会做一层数据正确性检查的动作;当我们使用 GridView 系结 SqlDataSoruce 来呈现数据,若 GridView 进行数据编辑存盘前也要做字段值的检查应该在如何做呢应该在那个控件的那个事件去处理这个检查动作呢
程序说明及实作
首先在页面上放置一个 GridView 及 SqlDataSource 控件,GridView 设为可编辑状态。
当 GridView 编辑储存时,我们要先做一些字段值正确性的检查动作,以下的范例为测试示范,只判断 LastName 字段不得为空,这种必填字段的判断一般只要使用 RequiredFieldValidator 控件在 Client 端即可。
方法一:在 GridView 的 RowUpdating 事件处理字段检查
GridView 在编辑储存前会引发 RowUpdating 事件,我们可以在此事件中处理字段检查,字段检查的程序代码如下。当字段检查不合法时,设定 e.Cancel = True 即可中断数据更新的动作。执行程序,故意将 LastName 清空,然后按 [更新] 钮进行储存,字段检查的动作就被执行了。
方法二:在 SqlDataSource 的 Updating 事件处理字段检查
对于 SqlDataSource 来说,编辑数据异动数据库之前,会引发 SqlDataSource 的 Updating 事件,
字段检查的程序代码如下。当字段检查不合法时,设定 e.Cancel = True 即可中断数据更新的动作,这种方式的执行结果跟上个作法一样。
Dim sScript As String
If String.IsNullOrEmpty(e.NewValues.Item("LastName")) Then
sScript = "alert('LastName 欄位不得為空')"
Me.ClientScript.RegisterStartupScript(Me.GetType, "error", sScript, True)
e.Cancel = True
End If
End Sub