BeforeDeleteDataRow

删除一行之前执行,可以在此处进行权限或逻辑验证,如果通不过验证,则撤销此次删除行操作。

e参数属性: 

DataTable:返回要删除行的数据表。
DataRow:  返回要删除的数据行。
Cancel:    逻辑型,设为True,取消删除行操作。
Continue: 逻辑型,设为False,取消后续删除行操作。

示例

DataTable和Table都有AllowDelete属性,用于决定是否允许用户删除行,但是该属性是一刀切,而利用BeforeDeleteDataRow事件,你可以在删除某一行之前进行复杂的逻辑判断,来决定是否应该删除这一行。

例如公司规定,对于已经结帐的行,只有“张经理”才能删除,你可以在BeforeDeleteDataRow设置如下代码: 

'如果当前用户不是张经理,而且即将被删除的行已经结帐,那么取消删除。
If
User.Name <> "张经理" And e.DataRow("结帐") = True Then
    MessageBox.Show(
"领导说了:已经结帐的行,只有张经理才能删除,别乱来!", "提示")
    e.Cancel =
True
End
If

如果一次选定多行进行删除,那么上述提示可能会出现多次,为避免这种情况,可以将Continue参数设置为False,取消后续的删除行操作,例如:

'如果当前用户不是张经理,而且即将被删除的行已经结帐,那么取消删除。
If
User.Name <> "张经理" And e.DataRow("结帐") = True Then
    MessageBox.Show(
"领导说了:已经结帐的行,只有张经理才能删除,别乱来!", "提示")
    e.Cancel =
True
    e.
Continue = False
End
If

注意: 将Continue设置为False,只是取消后续删除操作,而不会取消本次删除操作,所以上述代码还需要将Cancel设置为True。


本页地址:http://www.foxtable.com/webhelp/topics/0632.htm