日期:2014-05-17  浏览次数:20405 次

.net如何用多个dropdownlist分别来绑定多个年月日
C# code

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Collections;

public partial class Default3 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        gettime();

    }

    private void gettime()
    { 
        DateTime tnow = DateTime.Now;//现在时间
        //Response.Write(tnow);
        ArrayList AlYear = new ArrayList();

        int i;

        for (i = 1950; i <= int.Parse(tnow.Date.Year.ToString()); 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();

    }


    protected void DropDownList1_SelectedIndexChanged1(object sender, EventArgs e)
    {
        int year, month;

        year = Int32.Parse(DropDownList1.SelectedValue);

        month = Int32.Parse(DropDownList2.SelectedValue);

        BindDays(year, month);
    }
    protected void DropDownList2_SelectedIndexChanged1(object sender, EventArgs e)
    {
        int year, month;

        year = Int32.Parse(DropDownList1.SelectedValue);

        month = Int32.Parse(DropDownList2.SelectedValue);

        BindDays(year, month);
    }
}





HTML code

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:DropDownList ID="DropDownList1" runat="server" 
            onselectedindexchanged="DropDownList1_SelectedIndexChanged1" 
            AutoPostBack="True">