两个问题:
在回发时,当用户单击“提交”时,如何将错误消息添加到验证摘要中?
是否也可以使用内置的 .net 验证控件突出显示特定文本框?
最佳答案
动态创建 CustomValidator 控件并将其直接添加到 Page.Validators 集合中。
Dim err As New CustomValidator
err.ValidationGroup = "MyGroup"
err.IsValid = False
err.ErrorMessage = "The password is invalid"
Page.Validators.Add(err)
与将 CustomValidator 添加到标记不同,此方法允许您基于服务器端业务逻辑添加任意数量的任意错误消息。
请注意,您也可以直接将其添加到页面,但需要遵循一些规则:
- 您必须将控件添加到与验证组的控件相同的命名容器中。
- 如果您不希望验证消息出现在页面中的随机位置,则必须将验证器添加到特定容器,或者需要使用 CSS 类或样式抑制它。<
您还可以创建 custom class and implement IValidator ,这使您可以通过一行代码添加消息,但此方法不支持验证组。
根据 Anders Fjeldstad 的建议,这里有一组方便的扩展方法。
Imports Microsoft.VisualBasic
Imports System.Runtime.CompilerServices
Public Module PageExtensions
<Extension()> _
Public Sub AddValidationError(ByVal p As System.Web.UI.Page, ByVal errorMessage As String)
p.AddValidationError(errorMessage, String.Empty)
End Sub
<Extension()> _
Public Sub AddValidationError(ByVal p As System.Web.UI.Page, ByVal errorMessage As String, ByVal validationGroup As String)
Dim err As New CustomValidator
err.ValidationGroup = validationGroup
err.ErrorMessage = errorMessage
err.IsValid = False
p.Validators.Add(err)
End Sub
End Module
关于asp.net - 回发时,如何将错误消息添加到验证摘要中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/777889/