我已分配驗證創建發票時填充的日期字段的任務。它是一個帶有三個按鈕對象的文本框,允許用戶從日曆中選擇日期,輸入當天的日期或刪除日期條目。日期驗證 - 僅在本月內輸入日期
我的任務是確保用戶不能輸入不在當前月份之內的日期(雙重否定...棘手)。 我的任務是確保用戶只能在當前月份內輸入日期。 (更好?)
我不知道如何做到這一點。我應該使用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),但服務器必須始終驗證所有內容,無論如何。 –