DropDownList自动生成年月日

aspx页面上有三个dropdownlist控件,

dropdownlist1 表示年,dropdownlist2表示月,dropdownlist3表示天; 
注意用将这三个dropdownlist控件的autopostback属性设为true。

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

代码直接复制过去即可使用

前台代码

<div>

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"

onselectedindexchanged="DropDownList1_SelectedIndexChanged">

</asp:DropDownList>

<asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="True"

onselectedindexchanged="DropDownList2_SelectedIndexChanged1">

</asp:DropDownList>

<asp:DropDownList ID="DropDownList3" runat="server">

</asp:DropDownList>

</div>

后台代码

protected void Page_Load(object sender, 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();

}

//选择年

protected void DropDownList1_SelectedIndexChanged(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);

}

comboBox控件自动生成年月日

//判断闰年

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;

}

this.comboBox3.DataSource = alday;

}

private void Form1_Load(object sender, EventArgs e)

{

//绑定年

ArrayList alyear = new ArrayList();

int i;

for (i = 1900; i <= 2099; i++)

alyear.Add(i);

this.comboBox1.DataSource = alyear;

//绑定月

ArrayList almonth = new ArrayList();

for (i = 1; i <= 12; i++)

almonth.Add(i);

this.comboBox2.DataSource = almonth;

int year, month;

year = Int32.Parse(this.comboBox1.SelectedValue.ToString());

month = Int32.Parse(this.comboBox2.SelectedValue.ToString());

binddays(year, month);//绑定天

}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

{

int year, month;

year = Int32.Parse(this.comboBox1.SelectedValue.ToString());

month = 1;

binddays(year, month);

}

private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)

{

int year, month;

year = Int32.Parse(this.comboBox1.SelectedValue.ToString());

month = Int32.Parse(this.comboBox2.SelectedValue.ToString());

binddays(year, month);

}

DropDownList自动生成年月日的更多相关文章

  1. 《音乐商店》第4集:自动生成StoreManager控制器

    一.自动生成StoreManager控制器 二.查看 StoreManager 控制器的代码 现在,Store Manager 控制器中已经包含了一定数量的代码,我们从头到尾重新过一下. 1.访问数据 ...

  2. MySql主键自动生成,表、实体、C#调用方法

    1.表:mysql建表语句 DROP TABLE IF EXISTS `keycode`; CREATE TABLE `keycode` ( `Id` ) NOT NULL AUTO_INCREMEN ...

  3. [原创]超强C#图片上传,加水印,自动生成缩略图源代码

    <%@ Page Language=“C#“ AutoEventWireup=“true“ %> <%@ Import Namespace=“System“ %> <%@ ...

  4. SQL Server镜像自动生成脚本

    SQL Server镜像自动生成脚本 镜像的搭建非常繁琐,花了一点时间写了这个脚本,方便大家搭建镜像 执行完这个镜像脚本之后,最好在每台机器都绑定一下hosts文件,不然的话,镜像可能会不work 1 ...

  5. 使用mybatis-generator在自动生成Model类和Mapper文件

    使用mybatis-generator插件可以很轻松的实现mybatis的逆向工程,即,能通过表结构自动生成对应的java类及mapper文件,可以大大提高工作效率,并且它提供了很多自定义的设置可以应 ...

  6. 使用python自动生成docker nginx反向代理配置

    由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...

  7. 9.1.3 .net framework通过业务逻辑层自动生成WebApi的做法

    首先需要说明的是这是.net framework的一个组件,而不是针对.net core的.目前工作比较忙,因此.net core的转换正在编写过程中,有了实现会第一时间贴出来. 接下来进入正题.对于 ...

  8. 9.1.2 asp.net core 自动生成组合查询

    在做系统的时候,经常遇到前台录入一大堆的查询条件,然后点击查询提交后台,在Controller里面生成对应的查询SQL或者表达式,数据库执行再将结果返回客户端. 例如如下页面,输入三个条件,日志类型. ...

  9. mybatis-generator-gui--一个mybatis代码自动生成界面工具

    mybatis-generator-gui是什么 介绍mybatis-generator-gui之前,有必要介绍一下什么是mybatis generator(熟悉的同学可以跳过这一节).我们都知道,通 ...

随机推荐

  1. 【转】 为SeekBar滑块设置固定值以及自定义Seekbar,progressbar样式--不错

    原文网址:http://blog.csdn.net/jdsjlzx/article/details/7804080 最近在项目中使用到了seekbar和progressbar,且必须按照设计要求来进行 ...

  2. datagridview,textbox,combobox的数据绑定,数据赋值,picturebox的用法

    一:datagridview数据绑定 二:textbox的数据绑定(datetimepicker) 总结: 最好还是写成双向绑定那种,不要再写出发事件了,只要在给textbox赋值就能重新绑定了,不然 ...

  3. 高效算法——G - 贪心

    G - 贪心 Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Status Desc ...

  4. 《A First Course in Probability》-chape6-随机变量的联合分布-基本概念

    之前我们探讨了一元随机变量的分布列,下面我们应该将相应的性质推广到多元随机变量的分布列,在这里我们主要以讨论二元随机变量分布列为主. 利用类比的方法,我们很容易将一元随机变量的分布列的性质推广上来. ...

  5. hdu 4681 最长公共子序列+枚举

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4681 #include<cstdio> #include<cstring> # ...

  6. Servlet的接口实现类

    Sun公司提供了两个默认实现类 GenericServlet和HttpServlet HttpServlet指能够处理Http请求的Servlet,它在原有的Servlet基础上添加了与HTTp相关的 ...

  7. MP3播放器的实现

    今天,基本上实现了MP3播放器的基本功能,现在总结一下. 首先,下载服务器端的MP3列表,这里用到了下载技术和解析XML文件技术. 下载参考(http://blog.csdn.net/huim_lin ...

  8. php总结 --- 19. 其他小知识

    1. PHP博物馆 php各个版本的代码库 2. PHP-GTK php桌面程序 3. Pecl 4. Pear 5. php调试器 目前还不清楚具体有什么大的优势,为什么要用, IDE不能满足吗 6 ...

  9. UTR#2 T1

    题意:给定一个n,以下n个数(假定为fi),要求构造一个n个数的序列,使得这个序列每一个位置的最大上升子序列的长度等于对应的fi. 其实这道题是个很简单的题,之前7月也在BC上做到过,为什么要写呢,因 ...

  10. 关于openoffice英文乱码的问题

    首先选中乱码的部分,然后在右边的侧栏中看到其字体,尝试改变它的字体,看会不会显示正常,如果可以,先记住这两种字体.然后:    工具->选项->字体        然后在使用替换表打上勾, ...