2009-05-20 10 views
0

シナリオ:チーム(複数の人で構成)を1ページに挿入しようとしています。私は各人を挿入するWebユーザーコントロールを持っており、チームに複数の人がいる場合、同時に複数のWebユーザーコントロールが表示されます。ASP.NET - 複数の検証サマリー

各ユーザーには、ValidationSummaryと複数のバリデータがあります(すべてが同じ検証グループにグループ化されています。例person1 Webユーザーコントロールには、検証サマリーと "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

+0

は、あなたは、サーバー側からそれをチェックするために持っているか、あなたはこれをサポートしていない検証で、別の検証farmework.Builtに移動する必要があります...すべてのものを提出する一つのボタンがあります。以下のリンクを参照してください http://dotnetslackers.com/Community/blogs/bmains/archive/2007/10/10/validation-summary-and-multiple-validation-groups.aspx –

+0

次のようなものが必要ですあなたのボタンはイベントをクリックします Page.Validate( "validationGroup") –

0

あなたがコントロールのそれぞれに彼らに別の名前を与えることによって、互いからの検証グループを明確にする必要があります。たとえば、ユーザーコントロールのページ-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 
...