在ASP.NET中用三个DropDownList控件方便的选择年月日

2013 年 12 月 1 日4100

  

  ASPx页面上有三个DropDownList控件,

  DropDownList1 表示年,DropDownList2表示月,DropDownList3表示天;

  注意用将这三个DropDownList控件的AutoPostBack属性设为True。

  用户可以方便地选择年月日,并且每月的日期会随着用户选择不同的年,月而发生相应的变化

  其后台cs文件代码如下:

  private void Page_Load(object sender, System.EventArgs e)

  {

  DateTime tnow=DateTime.Now;//现在时间

  ArrayList AlYear=new ArrayList();

  int i;

  for(i=2002;i=2010;i++)

  AlYear.Add(i);

  ArrayList AlMonth=new ArrayList();

  for(i=1;i=12;i++)

  AlMonth.Add(i);

  if(!this.IsPostBack )

  {

  DropDownList1.DataSource=AlYear;

  DropDownList1.DataBind();//绑定年

  //选择当前年

  DropDownList1.SelectedValue=tnow.Year.ToString();

  DropDownList2.DataSource=AlMonth;

  DropDownList2.DataBind();//绑定月

  //选择当前月

  DropDownList2.SelectedValue=tnow.Month.ToString();

  int year,month;

  year=Int32.Parse(DropDownList1.SelectedValue);

  month=Int32.Parse(DropDownList2.SelectedValue);

  BindDays(year,month);//绑定天

  //选择当前日期

  DropDownList3.SelectedValue=tnow.Day.ToString();

  }

  }

  //判断闰年

  private bool CheckLeap(int year)

  {

  if((year%4==0)(year%100!=0)||(year%400==0))

  return true;

  else return false;

  }

  //绑定每月的天数

  private void BindDays( int year,int month)

  { int i;

  ArrayList AlDay=new ArrayList();

  switch(month)

  {

  case 1:

  case 3:

  case 5:

  case 7:

  case 8:

  case 10:

  case 12:

  for(i=1;i=31;i++)

  AlDay.Add(i);

  break;

  case 2:

  if (CheckLeap(year))

  {for(i=1;i=29;i++)

  AlDay.Add(i);}

  else

  {for(i=1;i=28;i++)

  AlDay.Add(i);}

  break;

  case 4:

  case 6:

  case 9:

  case 11:

  for(i=1;i=30;i++)

  AlDay.Add(i);

  break;

  }

  DropDownList3.DataSource=AlDay;

  DropDownList3.DataBind();

  }

  //选择年

  private void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e)

  {

  int year,month;

  year=Int32.Parse(DropDownList1.SelectedValue);

  month=Int32.Parse(DropDownList2.SelectedValue);

  BindDays(year,month);

  }

  //选择月

  private void DropDownList2_SelectedIndexChanged(object sender, System.EventArgs e)

  {

  int year,month;

  year=Int32.Parse(DropDownList1.SelectedValue);

  month=Int32.Parse(DropDownList2.SelectedValue);

  BindDays(year,month);

  }

0 0