ASP.NET - 每个页面加载时用户控制字段值更改

时间:2012-04-14 12:51:17

标签: asp.net user-controls

我有一个包含三个下拉列表的用户控件:日,月和年。这是一个日期选择器。它有一个私人领域

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。我该如何处理这个问题?

1 个答案:

答案 0 :(得分:1)

你的财产应该是这样的。

public Boolean IsValidDate 
{
    get
    {
        String CompleteDate = "YourYear" + "/" + "YourMonth" + "/" + "YourDay";
        DateTime Dt ;
        if (DateTime.TryParse(CompleteDate, out Dt))
            return true;
        return false;
    }
}