我已分配验证创建发票时填充的日期字段的任务。它是一个带有三个按钮对象的文本框,允许用户从日历中选择日期,输入当天的日期或删除日期条目。日期验证 - 仅在本月内输入日期
我的任务是确保用户不能输入不在当前月份之内的日期(双重否定...棘手)。 我的任务是确保用户只能在当前月份内输入日期。 (更好?)
我不知道如何做到这一点。我应该使用asp控件还是在后端执行此操作?
我正在使用VB.NET。
我已分配验证创建发票时填充的日期字段的任务。它是一个带有三个按钮对象的文本框,允许用户从日历中选择日期,输入当天的日期或删除日期条目。日期验证 - 仅在本月内输入日期
我的任务是确保用户不能输入不在当前月份之内的日期(双重否定...棘手)。 我的任务是确保用户只能在当前月份内输入日期。 (更好?)
我不知道如何做到这一点。我应该使用asp控件还是在后端执行此操作?
我正在使用VB.NET。
使用ASP.NET Validator
控制,就像这样:
标记:
<asp:TextBox id="YourTextBox" runat="server" />
<asp:RequiredFieldValidator ControlToValidate="YourTextBox"
Text="The date field is required!" runat="server" />
<asp:CompareValidator ID="compareValidatorDate" ControlToValidate="YourTextBox"
Type="Date" Operator="LessThan" ErrorMessage="Date must be from this month!"
Display="Dynamic" runat="server" />
注:我已经包括RequireFieldValidator
,以确保我们有一个值来比较的日期验证。
代码隐藏(Page_Load
):
If Not IsPostBack Then
Dim firstOfTheMonthDate As DateTime = FirstDayOfMonthFromDateTime(DateTime.Now)
Me.compareValidatorDate.ValueToCompare = firstOfTheMonthDate.ToString("d")
End If
代码隐藏(效用函数):
Public Function FirstDayOfMonthFromDateTime(dateTime As DateTime) As DateTime
Return New DateTime(dateTime.Year, dateTime.Month, 1)
End Function
注:我包括一个函数来确定当前的第一天的日期月。 Page_Load
正在调用该函数,然后将该函数作为要比较的值传递给验证程序。
这真是太神奇了,谢谢。我可以接受并输入需要的内容,但是我仍然会发布我正在使用的代码 – JettyJetty
@JettyJetty - 很棒,很高兴它对你有用。如果可以的话,随时也可以对我的答案进行投票。 :-) –
我知道对!我只是多一点声誉,我得到你先生 – JettyJetty
有必要提供一些代码。你需要客户端验证(javascript)或服务器端(vb.net)? – IvanH
伊万,我很新,我甚至不知道这个问题的答案,但我想表现出一些主动性?一般来说哪个更好? – JettyJetty
@IvanH - 应该始终进行服务器端验证,因为客户端验证可以绕过(即关闭JavaScript),但服务器必须始终验证所有内容,无论如何。 –