实例4-5 实现联动打的下拉列表DropDownList控件

来源:互联网 发布:城市网络交换平台 编辑:程序博客网 时间:2024/05/22 08:25

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