0

ajax カレンダー エクステンダーを使用してカレンダー コントロールを作成しています。そのコントロールでは、開始日と終了日を検証する必要があります。そのために、asp RangeValidator コントロールを使用します。

<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、現在または指定されたカルチャのプロパティから取得されます。...

CustomValidator唯一の方法は、 a を使用してこの形式を確認することだと思います。次に、この方法で日付を解析できます(サーバー側で):

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 に答える