我的网页中有14个字段;对于所有这些,我都使用RequiredFieldValidator。
此验证程序对所有字段都适用。当我遇到错误时,它会将其缓存并显示到正确的错误消息区域。
在该区域中,我有一个按钮,用于清除消息并返回到输入页面。
在缓存一两个错误后,我通过按下重置按钮返回第一页...更正错误...然后继续。
当我将变量传递到所有字段(这意味着一切都很好)时,通常必须更改Validator并传递陷阱(我在我的代码中有此陷阱),且其中没有错误消息...
这是陷阱代码...
If Not String.IsNullOrEmpty(RegisterValidationSummary.ValidationGroup) Then
RegisterValidationSummary.Visible = True
ErrorPanel.Visible = True
btnClr.Visible = True
Return
End If
但是没有陷阱再次起作用,并且使我返回到错误区域,没有任何错误显示。
仅复位按钮在那里,错误列表为空。
为了确保清除所有错误,我在“重置”按钮中使用了以下命令
Private Sub ClearValidators(sender As Object, e As EventArgs)
RegisterValidationSummary.ValidationGroup = String.Empty
End Sub
此时,验证程序已清除并且陷阱不起作用...问题是...即使我的页面中有某些错误也仍然会发生。
因此,我使用以下代码来再次启用验证程序。
For t = 0 To RegisterValidationSummary.Page.Validators.Count - 1
RegisterValidationSummary.Page.Validators.Item(t).Validate()
Next
验证程序未启用,并且陷阱当然不起作用。
是否有人知道发生了什么,以及如何从验证程序中清除某些错误...并再次启用以便再次验证字段?
您执行的验证错误。首先ValidationGroup
用于对验证进行分组,因此单击按钮即可验证该组中的字段。所有服务器控件都具有此属性,因此您可以通过在此属性中使用相同的文本将它们分组在一起以进行验证。检查此属性中的值将不会表明控件中的值有效或无效。
所以以下条件总是 True
If Not String.IsNullOrEmpty(RegisterValidationSummary.ValidationGroup) Then
因此,您将始终看到“重置”按钮。
并且,通过执行以下操作,您RegisterValidationSummary
将从中删除控件ValidationGroup
。
RegisterValidationSummary.ValidationGroup = String.Empty
因此,此后您将看不到任何错误消息,因为验证组中没有ValidationSummary来显示错误消息的摘要。
希望我能解释您为什么要看到自己现在所看到的。好的,既然我们知道这个问题,那么我们现在就可以轻松地解决它。
你应该做这样的事情。基本上,我们应该使用Page.Validate()
和If (Page.IsValid) Then
条件来检查中的所有字段是否ValidationGroup
有效。
Page.Validate()
If (Page.IsValid) Then
' If this condition is true that means all your fields have correct values
Else
' If this condition is true some of your fields are invalid. You can see that in the Validation summary message.
' Not sure why you do the reset but your reset logic could go here
RegisterValidationSummary.Visible = True
ErrorPanel.Visible = True
btnClr.Visible = True
End If
希望这有助于解决您的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句