62,046
社区成员
发帖
与我相关
我的任务
分享
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 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>
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();
}
public void getDDL(DropDownList ddlYear, DropDownList ddlMonth, DropDownList ddlDays)
{
//。。。?
}
ddlYear.DataSource = Account.GetAllList().Tables[0];
ddlYear.DataTextField = "AccountName";//把数据表里字段AccountName绑定到text上
ddlYear.DataValueField = "id";//绑定.....ID到value
ddlYear.DataBind();
private void BindDays(int year, int month,DropDownList ddlD)
{
//你的代码............................
ddlD.DataSource = AlDay; //、、、、这里就不是DropDownList3了而且像你说的(DaysID = "ddlDays" + i;)该怎么来修改呢。
ddlD.DataTextField = "Name";//把数据表里字段Name绑定到text上
ddlD.DataValueField = "id";//绑定.....ID到value,Value和text可以绑定为同一字段
ddlD.DataBind();
}
/// <summary>
/// 加载年月日的下拉
/// </summary>
/// <param name="ddlYear">下拉年</param>
/// <param name="ddlMonth">下拉月</param>
/// <param name="ddlDays">下拉天</param>
public void getDDL(DropDownList ddlYear, DropDownList ddlMonth, DropDownList ddlDays)
{
BindDays(1,2,ddlDays);
}
public void getDDL(DropDownList ddlYear, DropDownList ddlMonth, DropDownList ddlDays)
{
DateTime tnow = DateTime.Now;//现在时间
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);
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();
}
//不知道对不对,我这样做了,可是到
ddlYear.DataSource = AlYear; //这里的AlYear就报错了‘未将对象引用设置到对象的实例。’(下面的月,肯定也会报这错的)
ddlYear.DataBind();//绑定年
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了而且像你说的(DaysID = "ddlDays" + i;)该怎么来修改呢。
DropDownList3.DataBind();
/// <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();
}
if (!IsPostBack)
{
//如果你有多行的下拉,每行都是年.月.日,你可以将他们的ID明明为连续的、有规律的,如...ddlYears1,ddlYears2,ddlYears3
for (int i = 1; i < 3; i++)//i<3 根据你年月日的行数而定
{
string YearID = "";
string MonthID = "";
string DaysID = "";
YearID = "ddlYear" + i;
DropDownList ddlY = this.FindControl(YearID) as DropDownList;//findControl
MonthID = "ddlMonth" + i;
DropDownList ddlM = this.FindControl(MonthID) as DropDownList;//findControl
DaysID = "ddlDays" + i;
DropDownList ddlD = this.FindControl(DaysID) as DropDownList;//findControl
//调用方法
getDDL(ddlY, ddlM, ddlD);
}
}