2012-12-27 1 views
0

3 가지 유효성 검사기가있는 ASP에서 텍스트 상자 컨트롤이 있습니다. 각 유효성 검사기는 서버에서 오류 메시지를 받고 각각 다른 유효성을 검사합니다. 내 문제는 일부 값에 대해 두 개 이상의 유효성 검사기가 실행되고 하나 이상의 오류 메시지가 나타납니다. 일종의 우선 순위 기능을 만들고 싶습니다. 즉, 첫 번째 유효성 검사기가 실행 중이면 다른 유효성 검사기는 실행되지 않습니다. 유효성 검사기를 이와 같이 작동시키는 방법이 있습니까? 필요한 유효성 검사기가 무효 인 경우여러 ASP 유효성 검사기에 대한 단일 오류 표시

<asp:RequiredFieldValidator ID="cvRequired" runat="server" Display="Dynamic" 
    ControlToValidate="txtBox" /> 
<asp:RegularExpressionValidator ID="cvFormat" runat="server" Display="Dynamic" 
    ControlToValidate="txtBox" ValidationExpression="^([A-Za-z])+$" /> 
<asp:CustomValidator ID="cvCustom" runat="server" Display="Dynamic" 
    ControlToValidate="txtBox" ClientValidationFunction="validateFunction" /> 

가 난 사실, 난 그냥 그들의 오류가 표시되지 할 (형식 검사기와 사용자 정의 유효성 검사기가 발생하지 않습니다 것을 원하는 :

나는 몇 가지 코드 예제를 추가했습니다 메시지).

내가 말했듯이 오류 메시지는 서버에서 가져온 것이므로 하나의 사용자 정의 유효성 검사기에 실제로 연결할 수는 없습니다. 또한 "validateFunction"은 다른 js 파일에 있습니다 (다시 사용하기 위해). 그시

+1

당신은이 문제에 대한 몇 가지 코드를 붙여 수 있습니까? – Dev

답변

0

거의 로직 당신이 생각있어 옵션

(txtPhone) having three validators. 
1.RangeValidator, 2.CustomValidator 3.Regexvalidator 

말, 검증 후 (유효성 검사/실패 통과 할 경우 반환을 확인할) 행동. 나는 자바 스크립트를 사용하여 당신을 제안 할 것이다

if(rangevalidator1 != null) 
{ 
...somecode... 
} 

..

0

당신이 세 가지 검증을 위해 하나의 사용자 정의 유효성 검사기를 사용할 수 있으며, 당신이 당신의 필요에 따라 경우 상태 코드를 넣습니다. .cs 페이지

<asp:CustomValidator runat="server" ID="cstmStartDateValidater"      
         ToolTip="Start date cannot be greater than equal to end date/time or less than current date/time" 
         ErrorMessage="*" ControlToValidate="txtStartDateTime" 
        ForeColor="Red" ValidationGroup="vlgMessage" SetFocusOnError="true" 
         onservervalidate="cstmStartDateValidater_ServerValidate" ></asp:CustomValidator> 

protected void cstmStartDateValidater_ServerValidate(object source, ServerValidateEventArgs args) 
    { 
     if (CompareStartDate()) 
     { 
      args.IsValid = true; 
     } 
     else 
     { 
      args.IsValid = false; 
     } 
    } 

당신은 자세한 내용은 다음 링크를 사용할 수 있습니다

MSDN,
Code Project

이 당신을 도움이되기를 바랍니다.

+0

유효성 검사기에 대한 오류 메시지는 서버에서 가져온 것이므로 하나의 사용자 정의 유효성 검사기에 실제로 연결할 수는 없습니다. 문제를 이해하기 위해 방금 추가 한 코드 샘플을 볼 수 있습니다. – Lidor

+0

코드가 좋다. 모든 유효성 검사기 컨트롤에 유효성 검사 그룹을 추가하지 않는 이유는 무엇입니까? 그런 다음 버튼에도 지정하십시오. – Arshad

0

ajax 컨트롤 툴킷에서 사용할 수있는 ValidatorCalloutExtender 컨트롤을 사용합니다. 각 컨트롤에 별도의 ValidatorCalloutExtender를 배치하고 유효성을 검사합니다. 우리가 더 잘 이해할 수 있도록

관련 문제