2011-12-21 2 views
1

asp.net (VB) 페이지에 2 개의 섹션이있는 양식이 있습니다.그룹의 필드 중 하나 이상이 완료된 경우에만 asp.net을 실행해야합니다.

1 번 항목은 항상 필요하지만 2 번 항목은 선택 사항입니다. 그러나 섹션 2가 시작되면 모든 필드가 필요합니다.

나는이 유효성 검증을 작성하는 데 필요한 논리에 대해 고민하고 있습니다.

<form runat="server"> 

    <div> 
     <asp:TextBox runat="server" ID="field1a" Text="Name" /> 
     <asp:TextBox runat="server" ID="field1b" Text="City" /> 

     <asp:RequiredFieldValidator runat="server" ID="field1aVal" Text="Name Required" ControlToValidate="field1a" InitialValue="Name" /> 
     <asp:RequiredFieldValidator runat="server" ID="field1bVal" Text="City Required" ControlToValidate="field1b" InitialValue="City" /> 
    </div> 


    <div> 
     <asp:TextBox runat="server" ID="field2a" Text="Name" /> 
     <asp:TextBox runat="server" ID="field2b" Text="City" /> 

     <asp:RequiredFieldValidator runat="server" ID="field2aVal" Text="Name Required" ControlToValidate="field2a" InitialValue="Name" /> 
     <asp:RequiredFieldValidator runat="server" ID="field2bVal" Text="City Required" ControlToValidate="field2b" InitialValue="City" /> 
    </div> 

    <asp:button runat="server" ID="btnSubmit" Text="Submit" OnClick="submitForm" /> 

</form> 

답변

1

이드 섹션 1에서 사용 필수 필드를 말하지만, 섹션이에 대한 사용자 지정 유효성 검사기를 사용

여기 내 코드입니다. 이 같은. 그런 다음 코드에서

<asp:CustomValidator ID="CustomValidator2" runat="server" 
Display="Dynamic" EnableClientScript="False" 
ErrorMessage="You must select one checkbox or click all offices. " OnServerValidate="OfficeVaildator"> 
</asp:CustomValidator>  

뒤에 분명히 그 정말 간단 로직이

Sub OfficeVaildator(ByVal source As Object, ByVal args As ServerValidateEventArgs) 
        If OfficeCheckBoxs.Checked Then 
         args.IsValid = True 
        Else 
         args.IsValid = False 
        End If 
End Sub 

같은

뭔가. 어쨌든 사용자가 섹션 2를 변경했는지 확인하고, 모든 필드를 작성하여 서버 유효성 검사 인수가 사실인지 확인하는 경우 확인해야합니다. 그가 섹션 2를 변경하지 않았거나 데이터를 제공하지 않았다면이를 확인하고 유효성 검증을 설정하여 진행할 수 있도록하십시오.

관련 문제