0

我有一个包含三个下拉列表的用户控件:日、月和年。这是一种日期选择器。它有一个私有字段

private bool _isValidDate = false;

在下拉列表中,第一项是“日”、“月”和“年”。在 SelectedIndexChanged 事件中,我检查是否所有选定的索引都大于 0,如果是,我尝试使用下拉列表的值创建一个新的 DateTime 对象,如下所示:

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

在提交之前使用此控件的表单上,我检查 IsValidDate 属性,如果它为假,我会警告用户。问题是我第一次设置正确的日期并按下按钮时我没有收到任何警告,因为 IsValidDate 属性为真,但如果我第二次单击它,IsValidDate 属性设置回假并且我收到警告虽然日期有效。我知道这是因为每次页面加载时,控件的 _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 回答