asp:程序
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="ddlYear" runat="server" AutoPostBack="True"
OnSelectedIndexChanged="ddlYear_SelectedIndexChanged"></asp:DropDownList>年
<asp:DropDownList ID="ddlMonth" runat="server" AutoPostBack="True"
OnSelectedIndexChanged="ddlMonth_SelectedIndexChanged"></asp:DropDownList>月
<asp:DropDownList ID="ddlDay" runat="server" AutoPostBack="True"></asp:DropDownList>日
</div>
</form>
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
BindYear(); //调用自定义方法BindYear()"年份"下拉列表框中填充数据
BindMonth(); //调用自定义方法BindMonth()"月份"下拉列表框中填充数据
BindDay(); //调用自定义方法BindDay()"日期下拉列表框中填充数据
}
}
protected void BindYear()
{
ddlYear.Items.Clear(); //清空ddlYear
int startYear = DateTime.Now.Year - 20;
int currentYear = DateTime.Now.Year;
for(int i=startYear;i<=currentYear;i++) //向ddl添加最近10年的年份
{
ddlYear.Items.Add(new ListItem(i.ToString()));
}
ddlYear.SelectedValue = currentYear.ToString();
}
protected void BindMonth()
{
ddlMonth.Items.Clear();
for(int i=1;i<=12;i++) //向ddlMonth添加一年的月份
{
ddlMonth.Items.Add(i.ToString());
}
}
protected void BindDay()
{
ddlDay.Items.Clear();
string year = ddlYear.SelectedValue; //获取ddlYear中选定的値
string month = ddlMonth.SelectedValue; //获得相应的年、月对应的天数
int days = DateTime.DaysInMonth(int.Parse(year), int.Parse(month));
for(int i=1;i<=days;i++)
{
ddlDay.Items.Add(i.ToString());
}
}
protected void ddlYear_SelectedIndexChanged(object sender, EventArgs e)
{
BindDay();
}
protected void ddlMonth_SelectedIndexChanged(object sender, EventArgs e)
{
BindDay();
}
}