【发布时间】:2013-11-22 09:39:51
【问题描述】:
我的项目中有一个注册表单,我使用三个下拉列表输入日、月和年。在此日期通过代码隐藏方法添加到下拉列表中:
private void Add_Date()
{
ddl_dat.Items.Add(new ListItem("-Date-", "-1"));
for (int j = 0; j < 31; j++)
{
var newOption = new ListItem("" + (j + 1).ToString(), j.ToString());
ddl_dat.Items.Add(newOption);
}
}
我在月份下拉列表中手动添加了 12 个月。我希望用户无法输入 2 月 29 日或 4 月 31 日。 我通过在提交表单之前应用检查来做到这一点:
if (ddl_year.SelectedIndex != -1 && ddl_dat.SelectedIndex != -1 && ddl_mon.SelectedIndex != 0)
{
if (ddl_mon.SelectedIndex == 2 && ddl_dat.SelectedIndex >= 28)
{
lbl_alert.Text = Convert.ToInt32(ddl_dat.SelectedValue)+ 1 + " Febuary Doesn't Exist";
}
}
其他月份使用相同的方法。但我认为这不是解决这个问题的正确方法。有人有什么建议吗?
【问题讨论】:
-
这是一种方法。不过不要忘记只有 30 天的月份,还有闰年 - 2 月实际上有 29 天。使用日历控件也是一个不错的选择。