.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