我试图阻止用户选择结束日期不在开始日期之前,所以我认为比较valdiator会起作用。但它仍然允许它们在触发验证规则之前的时间早于开始时间。我正在使用带时间元素的datepicker来允许用户选择。
我想我问我是否需要有一种不同的方法来做这个时间元素obv的原因如果两个相同的日期它不会发现如果时间不同?
<div class="form-group">
<label class="col-md-4 control-label" for="val_bio">Start Date<span class="text-danger">*</span></label>
<div class="input-group col-md-7">
<telerik:RadDateTimePicker OnSelectedDateChanged="rdStarDate_SelectedDateChanged" AutoPostBackControl="Calendar" ID="rdStarDate" DateInput-CausesValidation="true" DateInput-AutoPostBack="true" Calendar-AutoPostBack="false" TimeView-Width="200px" Width="200px" CssClass="pickerDateInputClass no-border" runat="server" Skin="Bootstrap">
<TimeView CellSpacing="-1" StartTime="9:00:00" runat="server" Culture="en-GB" EndTime="18:00:00" Interval="00:30"></TimeView>
</telerik:RadDateTimePicker>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label" for="val_bio">End Date<span class="text-danger">*</span></label>
<asp:CompareValidator ID="cmpVal1" ControlToCompare="rdStarDate"
ControlToValidate="rdEndDate" Type="Date" Operator="GreaterThanEqual" ForeColor="Red" Display="Static"
ErrorMessage="*End Date Cannot be less then Start Date" runat="server"></asp:CompareValidator>
<div class="input-group col-md-7">
<telerik:RadDateTimePicker ID="rdEndDate" DateInput-CausesValidation="false" AutoPostBackControl="TimeView" TimeView-Width="200px" Width="200px" DateInput-AutoPostBack="true" CssClass="pickerDateInputClass no-border" runat="server" Skin="Bootstrap">
<TimeView CellSpacing="-1" runat="server" StartTime="9:00:00" Culture="en-GB" EndTime="18:00:00" Interval="00:30"></TimeView>
</telerik:RadDateTimePicker>
</div>
</div>
编辑2 在屏幕截图中,当我将日期更改回前进时,验证器仍然显示
即使我将日期重置为大于或等于origianl的日期,vaidator仍然可见
答案 0 :(得分:0)
选择开始日期时,请设置此项。
rdEndDate.MinDate = Convert.ToDateTime(rdStarDate.SelectedDate);