我使用以下代码确保我的文本框中输入了有效日期:
<asp:CompareValidator ID="cvStartDate" runat="server" Operator="DataTypeCheck"
Type="Date" ControlToValidate="txtStartDate" ErrorMessage="Please enter the
start date in the format of dd/MM/yyyy hh:mm"/>
但是当我输入日期时,验证失败。有没有办法让这种类型的验证器接受时间太多或我是否必须为此构建自定义验证器?如果我必须按照自定义验证路线进行操作,您会建议什么?
答案 0 :(得分:1)
CompareValidator仅适用于日期而非日期&amp;时间。
protected void CustomValidator_Date(object source, ServerValidateEventArgs args)
{
IFormatProvider culture = new CultureInfo("en-AU", true);
try
{
String[] formats = { "dd MM yyyy", "dd/MM/yyyy", "dd-MM-yyyy" };
DateTime dt1;
dt1 = DateTime.ParseExact(args.Value, formats, culture, DateTimeStyles.AdjustToUniversal);
args.IsValid = true;
}
catch
{
args.IsValid = false;
}
}
答案 1 :(得分:-1)
最好使用自定义验证器来验证日期。为了避免用户输入日期和时间,
使用Ajax日历扩展程序并将readonly属性设置为true。