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); }
|