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

来源:互联网 发布:网络与信息安全学报 编辑:程序博客网 时间:2024/06/04 18:19
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); }
原创粉丝点击