我正在使用ajax日历扩展器创建日历控件。在该控件中我需要验证日期和来自。因为我使用asp RangeValidator control.Calander formate设置为[MM / dd / yyyy]。
<asp:RangeValidator ID="RGvDt" runat="server" ErrorMessage="Invalid Date"
ForeColor="Red" Display="Dynamic" ControlToValidate="txtDate" Type="Date">
</asp:RangeValidator>
但它不起作用。它会导致低谷错误
The value '01/31/2022' of the MaximumValue property of 'RGvDt' cannot be converted to type 'Date'.
但是这段代码在aspx页面中运行正常。任何人都可以告诉我如何将RangeValidator用于我的用户控件。如何将验证格式更改为[dd / MM / yyyy]
答案 0 :(得分:0)
/
在日期格式字符串中具有特殊含义。这意味着:“用你的文化日期分隔符代替我”。例如,在德国,它是.
。
“/”自定义格式说明符表示日期分隔符 用于区分年,月和日。适当的 从中检索本地化日期分隔符 当前或指定的
DateTimeFormatInfoDateSeparator
属性 文化。 ...
我认为唯一的方法是使用CustomValidator
来检查这种格式。然后你可以用这种方式解析日期(在服务器端):
DateTime dt;
if(DateTime.TryParseExact(txtDate, "MM/dd/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
{
// now there is a valid date in dt
}
请注意我用CultureInfo.InvariantCulture
强制/
作为实际日期分隔符。