【散分】在ASP.NET中用三个DropDownList控件方便的选择年月日【原创】

fanz2000 2004-08-06 11:41:59
aspx页面上有三个DropDownList控件,

DropDownList1 表示年,DropDownList2表示月,DropDownList3表示天;
注意用将这三个DropDownList控件的AutoPostBack属性设为True。

用户可以方便地选择年月日,并且每月的日期会随着用户选择不同的年,月而发生相应的变化

其后台cs文件代码如下:

private void Page_Load(object sender, System.EventArgs e)
{
DateTime tnow=DateTime.Now;//现在时间
ArrayList AlYear=new ArrayList();
int i;
for(i=2002;i<=2010;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();
}



//选择年
private void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e)
{
int year,month;
year=Int32.Parse(DropDownList1.SelectedValue);
month=Int32.Parse(DropDownList2.SelectedValue);
BindDays(year,month);
}
//选择月


private void DropDownList2_SelectedIndexChanged(object sender, System.EventArgs e)
{
int year,month;
year=Int32.Parse(DropDownList1.SelectedValue);
month=Int32.Parse(DropDownList2.SelectedValue);
BindDays(year,month);
}
}
...全文
252 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanz2000 2004-08-09
  • 打赏
  • 举报
回复
js是你自己写的吗?
alliat 2004-08-09
  • 打赏
  • 举报
回复
亏你想得出来,俺们现在都是直接用JS写的弹出式日历控件,哪个还用这种落后的东东,为你伤心
vzxq 2004-08-09
  • 打赏
  • 举报
回复
up
jonescheng 2004-08-09
  • 打赏
  • 举报
回复
:)
zl194 2004-08-09
  • 打赏
  • 举报
回复
up
rock1981 2004-08-09
  • 打赏
  • 举报
回复
:)
colinliu 2004-08-09
  • 打赏
  • 举报
回复
好東西。。。。
ayancxia 2004-08-08
  • 打赏
  • 举报
回复
根本就是错误的嘛!不管哪个月份,日期里的天数全部都是31天……
xiaohutushen 2004-08-06
  • 打赏
  • 举报
回复
up
designonline 2004-08-06
  • 打赏
  • 举报
回复
up
SuperFC 2004-08-06
  • 打赏
  • 举报
回复
不错,学习ing
bys_home 2004-08-06
  • 打赏
  • 举报
回复
不错!
wang790809 2004-08-06
  • 打赏
  • 举报
回复
用js实现是最好的
chNET 2004-08-06
  • 打赏
  • 举报
回复

:)
liudageng 2004-08-06
  • 打赏
  • 举报
回复
顶!!!
eboywy 2004-08-06
  • 打赏
  • 举报
回复
UP
devfan 2004-08-06
  • 打赏
  • 举报
回复
好东西
cuike519 2004-08-06
  • 打赏
  • 举报
回复
jf
pbfan 2004-08-06
  • 打赏
  • 举报
回复
代码比较简单。
Angelnet 2004-08-06
  • 打赏
  • 举报
回复
學習
加载更多回复(1)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧