2009-01-30 2 views
2

시작 컨트롤에 9:00을 입력하고 완료로 16:00을 입력하십시오. 아래의 코드는 검증에 실패합니다.날짜가없는 시간에 CompareValidator를 어떻게 사용할 수 있습니까?

날짜가없는 시간에 ASP.NET 유효성 검사기를 사용할 수있는 방법을 아는 사람이 있습니까?

Start <asp:TextBox ID="txtStart" runat="server" /> (hh:mm) 
<br /> 
Finish <asp:TextBox ID="txtFinish" runat="server" /> (hh:mm) 
<br /> 
<asp:CompareValidator 
    id="cpvFinish" 
    ControlToValidate="txtFinish" 
    ControlToCompare="txtStart" 
    Operator="GreaterThanEqual" 
    Type="Date" 
    Display="Static" 
    EnableClientScript="true" 
    ErrorMessage="Finish time must be later than the start time." 
    runat="server" /> 

PS- 나는 CustomValidator를 쉽게 사용할 수 있다는 것을 알고 있습니다.이 유효성 검사기가 처리 할 수 ​​있어야하는 것 같습니다.

답변

7

통화.

레코드 용; 나는 custom validator를 사용했다.

EDIT : 누군가 (즉, alhambraeidos)가 필요로 할 경우에 대한 내 맞춤 검사기 코드가 여기에 있습니다. 이 코드는 내 샘플 컨트롤 이름 (txtStart & txtFinish)을 내 앱의 실제 이름 (txtReady & txtClose)으로 바꿉니다.

try 
{ 
    // parse & compare dates 
    string randomDt = "01/01/2000 "; 
    args.IsValid = DateTime.Parse(randomDt + txtClose.Text) > DateTime.Parse(randomDt + txtReady.Text); 
} 
catch(Exception /*ex*/) 
{ 
    // exception is assumed to be invalid times entered 
    args.IsValid = false; 
} 
0

Type 속성을 String으로 변경하려고하면 올바르게 작동합니다.

+0

내가 처음 시도한 것입니다. 그러나 '9:00'의 '9'는 '16 : 00 '의'1 '보다 크기 때문에 유효성 검사에 실패합니다. –

+0

9:00의 09:00에 의 09:00을 사용할 수 있습니다. 괜찮습니다. –

+0

고마워요.하지만 사용자가 0을 입력하는 것에 의존하고 싶지는 않습니다. 더 이상 클라이언트 쪽 js도 추가하고 싶지 않습니다. 어쨌든 고마워. –

0

는 검증 허용 유형은 비교 : Stinrg, 정수, 더블, 날짜 (짧은 시간)이 appearently 할 수 없습니다

관련 문제