DataRowLockedChanging
行的锁定状态改变前执行,可以在此处进行权限和逻辑验证,决定是否允许锁定或取消锁定此行。
e参数属性:
DataTable:返回要锁定行的数据表。
DataRow: 返回要锁定的数据行。
Cancel: 逻辑型,设为True,取消即将进行的锁定行操作。
你也许会奇怪,怎么知道进行的操作是锁定行还是取消锁定行? 其实很简单,如果行的当前状态是锁定,那么进行的就是取消锁定行操作,否则就是锁定行。
示例一
假定只允许经理级别的用户改变行的锁定状态,可以设置DataRowLockedChanging事件代码为:
If
User.Group <> "经理" Then示例二
假定有个表,要求:
1、只有已经审核通过的行,才能锁定。
2、对于已经审核通过并锁定的行,只有经理才能解锁。
要达到上述目的,可以设置DataRowLockedChanging事件代码为:
If e.DataRow("审核") = False Then '未审核通过的行
If e.DataRow.Locked = False Then '如果此行目前未锁定,也就是准备锁定此行
Messagebox.show("不能锁定未审核通过的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
e.Cancel = True
End If
ElseIf e.DataRow("审核") = True Then '已经审核通过的行
If e.DataRow.Locked = True Then '如果此行已锁定,也就是准备取消锁定此行
If User.Group <> "经理" Then
Messagebox.show("只有经理才能解锁已经审核通过的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
e.Cancel = True
End If
End If
End If