【问题标题】:Time being allowed before start time开始时间之前允许的时间
【发布时间】: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 的代码编辑

标签: c# asp.net webforms


【解决方案1】:

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

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

【讨论】:

  • 我为什么要做那个 spirfire2k6 和我的约会对象一样?
  • 当您设置 MinDate 时,之前的任何日期都是不可选择的。
  • 但是,如果我将开始日期更改为其他日期,那将不会真正帮助这种情况
  • 您可以将它添加到开始日期选择器的 onchange 事件中。
  • 没有解决问题,因此不会投票这个解决方案抱歉。
猜你喜欢
  • 1970-01-01
  • 2015-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-04
  • 1970-01-01
  • 2019-01-12
  • 2013-01-11
相关资源
最近更新 更多