【发布时间】:2015-03-12 19:14:35
【问题描述】:
我正在使用以下代码使用下拉菜单进行日期月份年份选择,我的天数会根据月份变化,例如 2 月比 28 日和 3 月比 31 日,但在我的月份下拉菜单中,它仅显示 1 月 12 日时间。我没有收到错误这是我的代码..
private int Day
{
get
{
if (Request.Form[ddlDay.UniqueID] != null)
{
return int.Parse(Request.Form[ddlDay.UniqueID]);
}
else
{
return int.Parse(ddlDay.SelectedItem.Value);
}
}
set
{
this.PopulateDay();
ddlDay.ClearSelection();
ddlDay.Items.FindByValue(value.ToString()).Selected = true;
}
}
private int Month
{
get
{
return int.Parse(ddlMonth.SelectedItem.Value);
}
set
{
this.PopulateMonth();
ddlMonth.ClearSelection();
ddlMonth.Items.FindByValue(value.ToString()).Selected = true;
}
}
private int Year
{
get
{
return int.Parse(ddlYear.SelectedItem.Value);
}
set
{
this.PopulateYear();
ddlYear.ClearSelection();
ddlYear.Items.FindByValue(value.ToString()).Selected = true;
}
}
public DateTime SelectedDate
{
get
{
try
{
return DateTime.Parse(this.Month + "/" + this.Day + "/" + this.Year);
}
catch
{
return DateTime.MinValue;
}
}
set
{
if (!value.Equals(DateTime.MinValue))
{
this.Year = value.Year;
this.Month = value.Month;
this.Day = value.Day;
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (this.SelectedDate == DateTime.MinValue)
{
this.PopulateYear();
this.PopulateMonth();
this.PopulateDay();
}
}
else
{
if (Request.Form[ddlDay.UniqueID] != null)
{
this.PopulateDay();
ddlDay.ClearSelection();
ddlDay.Items.FindByValue(Request.Form[ddlDay.UniqueID]).Selected = true;
}
}
}
private void PopulateDay()
{
ddlDay.Items.Clear();
ListItem lt = new ListItem();
lt.Text = "DD";
lt.Value = "0";
ddlDay.Items.Add(lt);
int days = DateTime.DaysInMonth(this.Year, this.Month);
for (int i = 1; i <= days; i++)
{
lt = new ListItem();
lt.Text = i.ToString();
lt.Value = i.ToString();
ddlDay.Items.Add(lt);
}
ddlDay.Items.FindByValue(DateTime.Now.Day.ToString()).Selected = true;
}
private void PopulateMonth()
{
ddlMonth.Items.Clear();
ListItem lt = new ListItem();
lt.Text = "MM";
lt.Value = "0";
ddlMonth.Items.Add(lt);
for (int i = 1; i <= 12; i++)
{
lt = new ListItem();
lt.Text = Convert.ToDateTime(i.ToString() + "/1/1900").ToString("MM");
lt.Value = i.ToString();
ddlMonth.Items.Add(lt);
}
ddlMonth.Items.FindByValue(DateTime.Now.Month.ToString()).Selected = true;
}
private void PopulateYear()
{
ddlYear.Items.Clear();
ListItem lt = new ListItem();
lt.Text = "YYYY";
lt.Value = "0";
ddlYear.Items.Add(lt);
for (int i = DateTime.Now.Year; i >= 1950; i--)
{
lt = new ListItem();
lt.Text = i.ToString();
lt.Value = i.ToString();
ddlYear.Items.Add(lt);
}
ddlYear.Items.FindByValue(DateTime.Now.Year.ToString()).Selected = true;
}
}
【问题讨论】:
标签: c# asp.net web-services