0

我正在使用 ajax 日历扩展器创建日历控件。在该控件中,我需要验证从和到的日期。为此,我使用 asp RangeValidator 控件。Calander 格式设置为 [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]

4

1 回答 1

0

/日期格式字符串中具有特殊含义。这意味着:“用你当前文化的日期分隔符替换我”。例如在德国是..

MSDN

“/”自定义格式说明符表示日期分隔符,用于区分年、月和日。DateTimeFormatInfoDateSeparator从当前或指定区域性的属性中检索适当的本地化日期分隔符 。...

我认为唯一的方法是使用 aCustomValidator检查这种格式。然后你可以用这种方式解析日期(在服务器端):

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我用来强制执行/实际日期分隔符的那个。

于 2013-06-26T09:40:40.417 回答