2012-02-21 4 views
9

모두 알고 계시 겠지만 비교 유효성 검사기를 사용하여 날짜를 확인하고 운영자 유형 (<, < =,> = 등)을 기준으로 확인하십시오. cultureinvariantvalues="true" 속성을 설정하여 날짜를 보유하는 두 개의 텍스트 상자 컨트롤의 유효성을 검사합니다. 시작 날짜가 완료 날짜보다 빠를 수 있도록 제한해야합니다. 다음과 같이 설명하는 날짜를 입력하면 유효성 검사가 실패한 것으로 보입니다.Asp.net이 유효성 검사기를 비교하여 날짜 유효성 확인

StartDate: Tuesday, 21 February 2012 

FinishDate: Wednesday, 22 February 2012 

22 번째가 21st보다 큰 경우에도 유효성 검사가 실패합니다. 내가 사용한 마크 업은 다음과 같습니다. 당신이 정보를 포맷해야 할 어떤 이유로, 여기가 dddd, dd MMMM yyyy

<asp:CompareValidator id="cvtxtStartDate" runat="server" 
     controltocompare="txtFinishDate" 
     cultureinvariantvalues="true" 
     display="Dynamic" 
     enableclientscript="true" 
     controltovalidate="txtStartDate" 
     errormessage="Start date must be earlier than finish date" 
     type="Date" 
     setfocusonerror="true" 
     operator="LessThanEqual" 
     text="Start date must be earlier than finish date"> 
+0

헤이 검증을 비교 사용하려면 있는 두 개의 텍스트 상자에 대한 검증을 비교 한 사용? – JayOnDotNet

+0

@JayaPrakashRokkam 그래도 충분합니다. 어느 쪽이든 유효성 검사가 발생하면 – Deeptechtons

답변

27

하는이 방법을 시도 먼저 시작 날짜를 입력하고이 종료 날짜 텍스트 상자와 검사기를 비교 확인 : 해당 날짜 형식을 받아 구속 date.But

<asp:CompareValidator id="cvtxtStartDate" runat="server" 
    ControlToCompare="txtStartDate" cultureinvariantvalues="true" 
    display="Dynamic" enableclientscript="true" 
    ControlToValidate="txtFinishDate" 
    ErrorMessage="Start date must be earlier than finish date" 
    type="Date" setfocusonerror="true" Operator="GreaterThanEqual" 
    text="Start date must be earlier than finish date"></asp:CompareValidator> 
+2

+1입니다. 다른 계정이있는 경우 단순함을 위해 +1합니다. 잘 했어. –

0

시도 사용자 지정 유효성 검사기를하고 onservervalidate 행사에서 뒤에 코드를 날짜 시간에 텍스트를 변환 한 다음을 비교 한 작업을 수행합니다.

protected void DateTimeComparision_ServerValidate(object source, ServerValidateEventArgs args) 
    { 
     args.IsValid = Convert.ToDateTime(txtStartDate.Text) < Convert.ToDateTime(txtFinishDate.Text); 
    } 
+0

맞춤 검사기가 마지막 수단입니다. 나는 모든 유효성 검사기를 사용하는 법을 알고 있습니다. 비교 유효성 검사기가 'm/d/y'형식의 날짜 만 지원하는 경우 가장 좋은 해결책은 – Deeptechtons

4

은 = 검사기는 유형이 비교 날짜의 특정 형식 즉, ToShortDateString(). 비교할 두 텍스트 상자의 날짜 형식이 ToLongDateString() 또는 ToString ("dd MMMM, yyyy")으로 지정된 형식과 같은 다른 형식 인 경우 비교가 작동하지 않습니다. CustomValidator isonly 옵션입니다. 당신은 단지 다음

textstartdate.text=Calendar1.SelectedDate.ToShortDateString(); 
textfinishdate=Calendar2.SelectedDate.ToShortDateString(); 
<asp:CompareValidator ID="CompareValidator4" runat="server" 
        ControlToCompare="textstartdate" ControlToValidate="textfinishdate" 
        CultureInvariantValues="True" 
        ErrorMessage="Date should be greater than booking date." 
        Operator="GreaterThanEqual" SetFocusOnError="True" Type="Date"></asp:CompareValidator> 
0
function FromAndToDateValidate() { 
try { 
    var StartDate = new Date(); 
    StartDate = $("#dtpFromDate").val(); 

    var EndDate = new Date(); 
    EndDate = $("#dtpToDate").val(); 
    args.IsValid = (StartDate <= EndDate); 
} 
catch (ex) { 
    alert(ex); 
} 
}