我们有一个文本框,用户可以在其中输入日期。唯一有效的日期是MM/dd/yyyy
。经历了所有的麻烦后,我认为MaskedEditExtender
是最好的选择。但是我使用它有一些问题。以下是我的ASPX代码,如何使用某些日期格式的Ajax MaskedEdit?
<div>
Date: <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:MaskedEditExtender ID="TextBox1_MaskedEditExtender" runat="server"
CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder=""
CultureDateFormat="" CultureDatePlaceholder="" CultureDecimalPlaceholder=""
CultureThousandsPlaceholder="" CultureTimePlaceholder="" Enabled="True"
Mask="99/99/9999" MaskType="Date" TargetControlID="TextBox1">
</asp:MaskedEditExtender>
<asp:CalendarExtender ID="TextBox1_CalendarExtender" runat="server"
Enabled="True" TargetControlID="TextBox1" Format="MM/dd/yyyy">
</asp:CalendarExtender>
</div>
这里是我的问题:
- 我加了
MaskedEditExtender
,当我拿起从日历日期之后,它不会写入文本框中。 - 当我在文本框中输入某个日期时,它将变成01-01-2011,而不是01/01/2011,这正是我想要的。
- 我应该使用
CompareValidator
还是MaskedEditValidator
?因为我想确保像02/29/2011那样的日期无效。
MaskedEditValidator或CompareValidator之间有什么不同? – GLP 2012-03-09 14:55:55
正如我之前写的,应该使用CompareValidator来比较一个输入控件的值与另一个输入控件的值或固定值,并且MaskedEditValidator将验证输入文本是否与MaskedEdit扩展器中指定的模式相匹配。所以对于你的问题,你应该使用MaskedEditValidator来确定日期是否正确。 – Koste 2012-03-09 15:00:47