2009-05-20 139 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 
...