Asp.net比较validation器以validation日期

众所周知,比较validation器可用于validation日期并根据运营商类型(<, =等)进行检查。 我设置了cultureinvariantvalues="true"属性来validation两个包含日期的文本框控件。 我必须约束它们,使得开始日期必须早于完成日期。 当我输入如下所示的描述性日期时,validation似乎失败了:

 StartDate: Tuesday, 21 February 2012 FinishDate: Wednesday, 22 February 2012 

即使22nd大于21,validation也会失败。 我使用的标记如下。 如果由于任何原因你需要格式信息,这里是dddd, dd MMMM yyyy

  

尝试这种方法,首先输入开始日期并检查比较validation器和结束日期文本框:

  

比较validation器具有type = date.But该日期类型被约束为仅接受特定格式的日期,即ToShortDateString()。 如果要比较的两个文本框的日期格式是其他格式,如ToLongDateString()或ToString指定的某种格式(“dd MMMM,yyyy”),则比较不起作用。 CustomValidator只是选项。 如果您只想使用比较validation器

 textstartdate.text=Calendar1.SelectedDate.ToShortDateString(); textfinishdate=Calendar2.SelectedDate.ToShortDateString();  

尝试自定义validation器,并在onservervalidate事件后面的代码将文本转换为DateTime,然后进行比较。

 protected void DateTimeComparision_ServerValidate(object source, ServerValidateEventArgs args) { args.IsValid = Convert.ToDateTime(txtStartDate.Text) < Convert.ToDateTime(txtFinishDate.Text); } 
 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); } }