aspx頁面上有三個DropDownList控件
DropDownList
注意用將這三個DropDownList控件的AutoPostBack屬性設為True
用戶可以方便地選擇年月日
其後台cs文件代碼如下
private void Page_Load(object sender
{
DateTime tnow=DateTime
ArrayList AlYear=new ArrayList();
int i;
for(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);
}
From:http://tw.wingwit.com/Article/program/net/201311/11653.html