2010-03-24 59 views
0

问题,我有以下情形:RangeValidator控件日历扩展项给出野生动物园

到达和离开日期必须与每个日历扩展表格上选择,通过2个文本框。

我验证条目以检查未选择今日之前的日期并检查出发是否在到达之后。我使用了rangevalidator和comparevalidator。

在IE,Firefox和Opera中,它工作正常,在Safari(在Windows上),但是即使在应该接受的条目上,验证器也会关闭。

它让我怀疑日期格式dd/MM/yyyy导致Safari的麻烦。

(dd的/ MMMM/yyyy的也给出了相同的烦恼在其他浏览器,可能是由于上的UICulture依赖性)

的代码是:

<tr> 
    <td> 
     <asp:TextBox ID="txtArrive" runat="server"></asp:TextBox> 
     <cc1:TextBoxWatermarkExtender ID="txtArriveWatermarkExt" runat="server" 
      Enabled="True" TargetControlID="txtArrive" WatermarkText="arrival date"> 
     </cc1:TextBoxWatermarkExtender> 
     <cc1:CalendarExtender ID="ArriveCalendarExt" runat="server" 
      CssClass="MyCalendar" Enabled="True" Format="dd/MM/yyyy" 
      TargetControlID="txtArrive"> 
     </cc1:CalendarExtender> 
     <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
      ControlToValidate="txtArrive" ErrorMessage="please select arrival date" 
      Text="*" ValidationGroup="date" Display="none"></asp:RequiredFieldValidator> 
     <asp:RangeValidator ID="RangeValidator1" runat="server" 
      ErrorMessage="please make sure that your arrival date is later than today and not later than a year from now" 
      ControlToValidate="txtArrive" Type="Date" ValidationGroup="date" Text="*"></asp:RangeValidator> 
    </td> 
    <td> 
     <asp:TextBox ID="txtDepart" runat="server"></asp:TextBox> 
     <cc1:TextBoxWatermarkExtender ID="txtDepartWatermarkExt" runat="server" 
      Enabled="True" TargetControlID="txtDepart" WatermarkText="departure date"> 
     </cc1:TextBoxWatermarkExtender> 
     <cc1:CalendarExtender ID="DepartCalendarExt" CssClass="MyCalendar" runat="server" Enabled="True" 
      Format="dd/MM/yyyy" TargetControlID="txtDepart"> 
     </cc1:CalendarExtender> 
     <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
      ControlToValidate="txtDepart" ErrorMessage="Please select departure date" 
      Text="*" ValidationGroup="date"></asp:RequiredFieldValidator> 
     <asp:CompareValidator ID="CompareValidator2" runat="server" 
      ControlToCompare="txtDepart" ControlToValidate="txtArrive" 
      ErrorMessage="your departure date has to be later than your arrival date" 
      Operator="LessThan" Type="Date" Text="*" ValidationGroup="date"></asp:CompareValidator> 
    </td> 
    <td> 
     &nbsp;</td> 
</tr> 

范围验证器获得其值在Page_load

RangeValidator1.MinimumValue = DateTime.Now.AddDays(1).ToShortDateString(); 
RangeValidator1.MaximumValue = DateTime.Now.AddMonths(12).ToShortDateString(); 

后面的代码是否有人对如何解决这个问题的Safari有什么建议?

回答

0

将格式属性设置为日历扩展程序的Format =“dd/MM/yyyy”

相关问题