我有一个包含三个下拉列表的用户控件:日,月和年。这是一个日期选择器。它有一个私人领域
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属性,如果它是false,我警告用户。问题是我第一次设置正确的日期并按下按钮我没有收到任何警告,因为IsValidDate属性为true但是如果我第二次单击它,IsValidDate属性设置回false并且我收到警告,尽管日期有效。我知道这是因为每次页面加载时,控件的_isValiddate字段都会被设置回默认值false。我该如何处理这个问题?
答案 0 :(得分:1)
你的财产应该是这样的。
public Boolean IsValidDate
{
get
{
String CompleteDate = "YourYear" + "/" + "YourMonth" + "/" + "YourDay";
DateTime Dt ;
if (DateTime.TryParse(CompleteDate, out Dt))
return true;
return false;
}
}