【问题标题】:ASP.NET - User control filed value changes at every pageloadASP.NET - 每次页面加载时用户控件字段值都会更改
【发布时间】:2012-04-14 12:51:16
【问题描述】:

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

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

【问题讨论】:

    标签: asp.net user-controls


    【解决方案1】:

    你的财产应该是这样的。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-16
      • 2021-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-14
      • 2019-05-22
      相关资源
      最近更新 更多