我正在使用帶日曆擴展器的文本框來輸入出生日期。我正在驗證日期爲今天或更早。我有以下代碼:使用CompareValidator驗證日期
<asp:TextBox ID="txtDateOfBirth" runat="server" </asp:TextBox><ajaxToolkit:CalendarExtender ID="txtDateOfBirth_CalendarExtender" runat="server" Enabled="True" TargetControlID="txtDateOfBirth" Format="MM/dd/yyyy" </ajaxToolkit:CalendarExtender>
<asp:CompareValidator ID="cvDateOfBirth" runat="server" ControlToValidate="txtDateOfBirth" ErrorMessage="Must be today or older" Display="Dynamic" Operator="LessThanEqual"></asp:CompareValidator>
我在我的Page_Load
cvDateOfBirth.ValueToCompare = DateTime.Today.ToString("MM/dd/yyyy");
在CompareValidator下面我有類型設置爲字符串。如果我將其設置爲日期,則出現錯誤
'cvDateOfBirth'的ValueToCompare屬性值'04/21/2013'無法轉換爲類型'Date'。
我格式化日期MM/DD/YYYY,因爲如果我不格式化先有MM的日期(並使其保持默認值),它在插入時的日期和月份逆轉或出範圍異常如果月份大於12(SQL 2008 R2)。如果我將字符串作爲字符串,則驗證將正確運行,但僅適用於今年。如果我選擇2012年12月31日(2012年12月31日)的日期,則驗證失敗。任何人都可以指出我做錯了什麼。此外,我閱讀了一些帖子,他們說Type必須設置爲Date for CompareValidator,但是我收到了上面提到的錯誤。此外,爲什麼將它設置爲日期而不是字符串,當我將它與文本框中的字符串進行比較時。感謝幫助。
傳遞日期格式爲DD/MM/YYYY,並且查看它是否工作或不需要 – 2013-04-22 03:20:51
您需要通過Type =「Date」 – 2013-04-22 03:26:17
如果我將日期作爲DD/MM/YYYY比日期中的DB和月份是相反的 – Teebow 2013-04-22 03:29:19