2009-05-20 140 views
0

场景:我试图在一个页面上插入一个团队(由多人组成)。我有一个Web用户控件来插入每个人,当一个团队有多个人时,同时显示多个Web用户控件。ASP.NET - 多重验证摘要

每个用户都有一个ValidationSummary和多个验证程序(全部分组到相同的验证组,例如person1网络用户控件具有de验证摘要上的验证组,并将每个验证程序设置为“valGroup_Person1”)。

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

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

回答

6

如果你使用的是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" />

+0

我只有一个按钮提交一切...... – Sergio 2009-05-20 13:33:32

0

你必须给他们上的每个控件的名字不同的歧义相互验证组。例如,在用户控件的页面初始化:

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 
...