我有一个 type=DateTimeLocal 的 asp 文本框。我正在尝试验证它以确保它的日期时间值大于当前日期时间。我尝试比较在 aspx 和 vb(server) 端加载值的验证器。我尝试过范围验证器和自定义验证器。我的自定义验证器永远不会触发。Range 和 Compare 总是返回无效的。
如何验证在提供的 type=DateTimeLocal 的文本框中输入的文本是否大于当前日期时间?
ASPX 页面
<asp:TextBox CssClass="form-control" ID="txtStartDate" TextMode="DateTimeLocal" runat="server" type="date"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvStartDate" runat="server" ErrorMessage="Start Date is required" Text="*"
ControlToValidate="txtStartDate" ValidationGroup="AddEvent"></asp:RequiredFieldValidator>
<asp:RangeValidator ID="rgvStartDate" runat="server" ErrorMessage="Start Date must be a date after the current Date"
text="*" ValidationGroup="AddEvent" ControlToValidate="txtStartDate" Type="Date"></asp:RangeValidator>
====================================
后端
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
rgvStartDate.MinimumValue = DateTime.Now.Date.AddDays(1.0).ToString("d")
rgvStartDate.MaximumValue = DateTime.Now.Date.AddDays(100.0).ToString("d")
End Sub
====================================== 解决方法
<div class="form-group">
<label class="col-lg-4 control-label" for="txtStartDate">Start Date:</label>
<div class="col-lg-8">
<asp:TextBox CssClass="form-control" ID="txtStartDate" TextMode="Date" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvStartDate" runat="server" ErrorMessage="Start Date is required" Text="*"
ControlToValidate="txtStartDate" ValidationGroup="AddEvent"></asp:RequiredFieldValidator>
<asp:RangeValidator ID="rgvStartDate" runat="server" ErrorMessage="Start Date must be a date after the current Date"
text="*" ValidationGroup="AddEvent" ControlToValidate="txtStartDate" Type="Date"></asp:RangeValidator>
</div>
</div>
<div class="form-group">
<label class="col-lg-4 control-label" for="txtStartDateTime">Start Time:</label>
<div class="col-lg-8">
<asp:TextBox CssClass="form-control" ID="txtStartDateTime" TextMode="Time" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvStartDateTime" runat="server" ErrorMessage="Start Time is required" Text="*"
ControlToValidate="txtStartDateTime" ValidationGroup="AddEvent"></asp:RequiredFieldValidator>
</div>
</div>
最初我在同一个文本框中都有时间和日期,但这导致我的验证不起作用。解决方案是为时间制作一个单独的文本框,然后让日期单独显示。然后当你去添加的时候,你可以把日期和时间放在一起。
<asp:TextBox CssClass="form-control" ID="txtStartDate" TextMode="DateTimeLocal" runat="server" type="date"></asp:TextBox>