【发布时间】:2016-04-27 14:47:15
【问题描述】:
我试图阻止用户选择不早于开始日期的结束日期,所以我认为比较验证器会起作用。但它仍然允许他们在触发验证规则之前输入早于开始时间的时间。我正在使用带有时间元素的日期选择器来允许用户选择。
我想我在问是否需要一种不同的方式来处理时间元素 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 就像这里的屏幕截图一样,当我将日期改回那个日期时,验证器仍在显示
即使我将日期重置为大于或等于原始日期的日期,vaidator 仍然可见
【问题讨论】:
-
感谢 @rashfmnb 的代码编辑