首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

.net怎么用多个dropdownlist分别来绑定多个年月日

2012-10-25 
.net如何用多个dropdownlist分别来绑定多个年月日C# codeusing Systemusing System.Collections.Generic

.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">                   </asp:DropDownList>        <asp:DropDownList ID="DropDownList2" runat="server"             onselectedindexchanged="DropDownList2_SelectedIndexChanged1"             AutoPostBack="True">                   </asp:DropDownList>        <asp:DropDownList ID="DropDownList3" runat="server">                    </asp:DropDownList>         <br />         <asp:DropDownList ID="DropDownList4" runat="server"             onselectedindexchanged="DropDownList1_SelectedIndexChanged1"             AutoPostBack="True">                   </asp:DropDownList>        <asp:DropDownList ID="DropDownList5" runat="server"             onselectedindexchanged="DropDownList2_SelectedIndexChanged1"             AutoPostBack="True">                   </asp:DropDownList>        <asp:DropDownList ID="DropDownList6" runat="server">                    </asp:DropDownList>         <br />         <asp:DropDownList ID="DropDownList7" runat="server"             onselectedindexchanged="DropDownList1_SelectedIndexChanged1"             AutoPostBack="True">                   </asp:DropDownList>        <asp:DropDownList ID="DropDownList8" runat="server"             onselectedindexchanged="DropDownList2_SelectedIndexChanged1"             AutoPostBack="True">                   </asp:DropDownList>        <asp:DropDownList ID="DropDownList9" runat="server">                    </asp:DropDownList>    </div>    </form></body></html> 


上面是我的代码,我想要的结果是我一个页面里有多个年,月,日 如何不重复下面这些代码,就是改成通用的可多次调用的方法,谢谢
C# code
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();        }


附一张效果图


[解决办法]
这样中不中呢:
首先把这一部分摘出来当作方法:
C# code
    /// <summary>    /// 加载年月日的下拉    /// </summary>    /// <param name="ddlYear">下拉年</param>    /// <param name="ddlMonth">下拉月</param>    /// <param name="ddlDays">下拉天</param>    public void getDDL(DropDownList ddlYear, DropDownList ddlMonth, DropDownList ddlDays)    {        ddlYear.DataSource = AlYear;        ddlYear.DataBind();//绑定年        //选择当前年        ddlYear.SelectedValue = tnow.Year.ToString();        ddlMonth.DataSource = AlMonth;        ddlMonth.DataBind();//绑定月        //选择当前月        ddlMonth.SelectedValue = tnow.Month.ToString();        int year, month;        int.TryParse(ddlYear.SelectedValue,out year);        int.TryParse(ddlMonth.SelectedValue,out month);        BindDays(year, month);//绑定天        //选择当前日期        ddlDays.SelectedValue = tnow.Day.ToString();    }
[解决办法]
?dropdownlist事件里绑
[解决办法]
Refer:


http://www.cnblogs.com/insus/archive/2012/10/16/2725307.html
[解决办法]
http://www.cnblogs.com/insus/archive/2012/10/16/2725307.html

热点排行