我想我会尝试使用 CustomValidator。使用 CustomValidator,您可以在“_ServerValidate”事件处理程序中定义验证代码。
在您的验证代码中,您可以调用数据库以获取当前值,然后将其与提交的值进行比较(如果您指定 ControlToValidate,则可以通过事件处理程序的 ServerValidateEventArgs 参数获得)。
为了在数据库中查找当前值,您需要知道点击了哪条记录。为此,您可以使用行按钮的 CommandArgument 属性或在行中包含一个隐藏字段来存储某种类型的 ID。然后您可以捕获该 ID 并使用它在数据库中查找所需的记录。
用代码更新
Protected Sub cusCustom_ServerValidate(source As Object, args As System.Web.UI.WebControls.ServerValidateEventArgs)
Dim cv As CustomValidator = CType(source, CustomValidator)
Dim HiddenField_ID As HiddenField = CType(cv.Parent.FindControl("HiddenField_ID"), HiddenField)
*** Use ID to look up value in database ***
End Sub