繁体   English   中英

ASP.NET-多重验证摘要

[英]ASP.NET - Multiple ValidationSummary

场景 :我试图在一个页面上插入一个团队(由多人组成)。 我有一个可插入每个人的Web用户控件,当一个团队有多个人时,会同时显示几个Web用户控件。

每个用户都有一个ValidationSummary和几个验证器(所有分组到同一个验证组,示例person1 Web用户控件在de Validation summary上具有验证组,并且在每个验证器上将其设置为“ valGroup_Person1”)。

问题是,当发生验证时,所有错误都会分组并显示在所有Web用户控件中,从而使每个Web用户控件都显示一个非常长的错误列表。 预期的是单个错误列表。

有没有办法使ValidationSummary以这种方式执行?

如果您使用的是asp.net 2.0,则必须使用验证组。

请参阅以下示例,它将起作用

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="RequiredFieldValidator" ValidationGroup="1">1</asp:RequiredFieldValidator> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="TextBox2" ErrorMessage="RequiredFieldValidator2" ValidationGroup="2">2</asp:RequiredFieldValidator> <asp:ValidationSummary ID="ValidationSummary1" runat="server" ValidationGroup="1" /> <asp:ValidationSummary ID="ValidationSummary2" runat="server" ValidationGroup="2" /> <asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="1" /> <asp:Button ID="Button2" runat="server" Text="Button" ValidationGroup="2" />

您必须通过在每个控件上给它们分别指定名称来消除验证组的歧义。 例如,在用户控件的page-init中:

Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
    Dim uniqueGroupName = Guid.NewGuid.ToString
    valSummary.ValidationGroup = uniqueGroupName
    txtFirstName.ValidationGroup = uniqueGroupName
    txtLastName.ValidationGroup = uniqueGroupName
    btnFind.ValidationGroup = uniqueGroupName
End Sub

(对于该组中的每个控件,以编程方式为其提供一个验证组)

如果要进行服务器端验证,则应仅对组调用验证,例如

Page.Validate(valSummary.ValidationGroup)
If Not Page.IsValid then Exit Sub
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM