我有一个包含三个下拉列表的用户控件:日、月和年。这是一种日期选择器。它有一个私有字段
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。我该如何处理这个问题?