在开始时间之前允许的时间

时间:2016-04-27 14:47:16

标签: c# asp.net webforms

我试图阻止用户选择结束日期不在开始日期之前,所以我认为比较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仍然可见

enter image description here

1 个答案:

答案 0 :(得分:0)

选择开始日期时,请设置此项。

rdEndDate.MinDate = Convert.ToDateTime(rdStarDate.SelectedDate);