Problem checking user management group

I have two instances of a user control on the page. Both have fields and one submit button.

I set validation groups in fields and validators, but for some reason, when validating validators in two user controls.

+5
source share
2 answers

You can open the property ValidationGroupin your UserControl, which you would set from the page. This value must be stored in the ViewState, so that each instance of UserControl will receive different ValidationGroups (if your page assigns different).

For instance:

Public Property ValidationGroup() As String
 Get
  Return CStr(ViewState("ValidationGroup"))
 End Get
 Set(ByVal value As String)
  SetValidationGroupOnChildren(Me, value)
  ViewState("ValidationGroup") = value
 End Set
End Property

Private Sub SetValidationGroupOnChildren(ByVal parent As Control, ByVal validationGroup As String)
    For Each ctrl As Control In parent.Controls
        If TypeOf ctrl Is BaseValidator Then
            CType(ctrl, BaseValidator).ValidationGroup = validationGroup
        ElseIf TypeOf ctrl Is IButtonControl Then
            CType(ctrl, IButtonControl).ValidationGroup = validationGroup
        ElseIf ctrl.HasControls() And ctrl.Visible = True Then
            SetValidationGroupOnChildren(ctrl, validationGroup)
        End If
    Next
End Sub

ValidationGroups UserControl, , . , UserControl ( ) ClientID ValidationGroup . , , PreRender.

+3

:

Dim valGroup = String.format("{0}-validation", Guid.NewGuid())

rfv001.ValidationGroup = valGroup
rfv002.ValidationGroup = valGroup
rfv003.ValidationGroup = valGroup
rfv004.ValidationGroup = valGroup
rfv005.ValidationGroup = valGroup

btnSubmit.ValidationGroup = valGroup

ValidationGroup.

+7

All Articles