0

日、月、年の 3 つのドロップダウン リストを含むユーザー コントロールがあります。デートピッカーのようなものです。専用フィールドあり

private bool _isValidDate = false;

ドロップダウンリストの最初の項目は「日」、「月」、「年」です。SelectedIndexChanged イベントで、選択したすべてのインデックスが 0 より大きいかどうかを確認し、それが true の場合は、次のようなドロップダウン リストの値を持つ新しい DateTime オブジェクトを作成しようとします。

try
{ 
  DateTime date=new DateTime(int.Parse(ddlYear.SelectedItem),
                                ddlMonth.SelectedIndex,
                                ddlDay.SelectedIndex);
  _isValidDate=true;
}
catch {_isValidDate=false;}

送信前にこのコントロールを使用するフォームで、IsValidDate プロパティをチェックし、false の場合はユーザーに警告します。問題は、最初に正しい日付を設定してボタンを押すことです。IsValidDate プロパティが true であるため、警告は表示されませんが、2 回目にクリックすると、IsValidDate プロパティが false に戻り、警告が表示されますが、日付は有効です。ページが読み込まれるたびに、コントロールの _isValiddate フィールドがデフォルト値の false に戻されるためです。どうすればこの問題を処理できますか?

4

1 に答える 1

1

あなたの財産はこうあるべきです。

public Boolean IsValidDate 
{
    get
    {
        String CompleteDate = "YourYear" + "/" + "YourMonth" + "/" + "YourDay";
        DateTime Dt ;
        if (DateTime.TryParse(CompleteDate, out Dt))
            return true;
        return false;
    }
}
于 2012-04-14T13:03:11.610 に答える