基于Asp.net与Javascript控制的日期控件


Posted in Javascript onMay 22, 2010

控件效果如下:

基于Asp.net与Javascript控制的日期控件

从左到右:month,day,year

.cs文件初始化这三个下拉列表

private void BindBirthDay(int day, int month, int year) 
{ 
int dayNow = day; 
int monNow = month; 
int yearNow = year; 
//binding Month 
for (int i = 1; i <= 12; i++) 
{ 
ddlBirMon.Items.Add(new ListItem(i.ToString(), i.ToString())); 
} 
ddlBirMon.Items[monNow - 1].Selected = true; 
//binding Day 
int daysOfMonth = DateTime.DaysInMonth(yearNow, monNow); 
for (int i = 1; i <= daysOfMonth; i++) 
{ 
ddlBirDay.Items.Add(new ListItem(i.ToString(), i.ToString())); 
} 
ddlBirDay.Items[dayNow - 1].Selected = true; 
//binding Year 
for (int i = 20; i > 0; i--) 
{ 
ddlBirYear.Items.Add(new ListItem((yearNow - i).ToString(), (yearNow - i).ToString())); 
} 
for (int i = 0; i < 20; i++) 
{ 
ddlBirYear.Items.Add(new ListItem((yearNow + i).ToString(), (yearNow + i).ToString())); 
} 
ddlBirYear.Items.FindByValue(yearNow.ToString()).Selected = true; 
}

js代码如下(自己写的,不保证完全正确啊):
function ChangeDay() { 
var month = document.getElementById("<%=ddlBirMon.ClientID %>"); 
var year = document.getElementById("<%=ddlBirYear.ClientID %>"); 
var day = document.getElementById("<%=ddlBirDay.ClientID %>"); 
if (month.selectedIndex == 3 || month.selectedIndex == 5 || month.selectedIndex == 8 || month.selectedIndex == 10) { 
if (day.length == 31) { 
if (day.options[30].selected == true) { 
day.options[29].selected = true; 
} 
day.remove(30); 
} 
} 
else{ 
while (day.length < 31) { 
day.add(new Option(day.length+1,day.length+1)); 
} 
} 
if (month.selectedIndex == 1) { 
if (day.length > 28) { 
if (day.selectedIndex == 28) { 
day.options[27].selected = true; 
} 
while (day.length > 28) { 
day.remove(day.length - 1); 
} 
} 
var sy = year.options[year.selectedIndex].value; 
if ((sy % 4 == 0 && sy % 100 != 0) || (sy % 400==0)) { 
day.add(new Option("29", "29")); 
} 
} 
}
Javascript 相关文章推荐
JavaScript中“+=”的应用
Feb 02 Javascript
Javascript实现获取窗口的大小和位置代码分享
Dec 04 Javascript
jQuery实现自定义事件的方法
Apr 17 Javascript
JavaScript弹窗基础篇
Apr 27 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
Apr 12 Javascript
使用D3.js构建实时图形的示例代码
Aug 28 Javascript
详解Vue CLI3 多页应用实践和源码设计
Aug 30 Javascript
element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
Jan 15 Javascript
Vue分页器实现原理详解
Jun 28 Javascript
Vue+Koa2+mongoose写一个像素绘板的实现方法
Sep 10 Javascript
element-ui tree结构实现增删改自定义功能代码
Aug 31 Javascript
js实现磁性吸附的示例
Oct 26 Javascript
jQueryPad 实用的jQuery测试工具(支持IE,chrome,FF)
May 22 #Javascript
用jQuery打造TabPanel效果代码
May 22 #Javascript
Mootools 图片展示插件(lightbox,ImageMenu)收集集合
May 21 #Javascript
jquery 多级下拉菜单核心代码
May 21 #Javascript
JQuery 学习技巧总结
May 21 #Javascript
Jquery调用webService远程访问出错的解决方法
May 21 #Javascript
ExtJS 下拉多选框lovcombo
May 19 #Javascript
You might like
分享下页面关键字抓取components.arrow.com站点代码
2014/01/30 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
php curl优化下载微信头像的方法总结
2018/09/07 PHP
JavaScript 继承详解(三)
2009/07/13 Javascript
javascript 基础篇4 window对象,DOM
2012/03/14 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
快速学习JavaScript的6个思维技巧
2015/10/13 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
微信小程序 视图层(xx.xml)和逻辑层(xx.js)详细介绍
2016/10/13 Javascript
AngularJS实现单一页面内设置跳转路由的方法
2017/06/28 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
2017/09/20 Javascript
angular2 ng2-file-upload上传示例代码
2018/08/23 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
js中null与空字符串&quot;&quot;的区别讲解
2019/01/17 Javascript
javascript sort()对数组中的元素进行排序详解
2019/10/13 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
iview实现动态表单和自定义验证时间段重叠
2021/01/10 Javascript
[02:53]DOTA2英雄基础教程 山岭巨人小小
2013/12/09 DOTA
[01:09:23]KG vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[03:40]DOTA2抗疫特别篇《英雄年代》
2020/02/28 DOTA
Python多线程实现同步的四种方式
2017/05/02 Python
Python OpenCV实现图片上输出中文
2018/01/22 Python
Python实现的求解最小公倍数算法示例
2018/05/03 Python
Python脚本按照当前日期创建多级目录
2019/03/01 Python
python实现趣味图片字符化
2019/04/30 Python
python实现串口自动触发工作的示例
2019/07/02 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
2020/05/09 Python
Python解析微信dat文件的方法
2020/11/30 Python
详解px单位html5响应式方案
2018/03/08 HTML / CSS
FitFlop美国官网:英国符合人体工学的鞋类品牌
2018/10/05 全球购物
最热门的自我评价
2013/12/30 职场文书
出国留学介绍信
2014/01/13 职场文书
开展批评与自我批评发言材料
2014/05/15 职场文书
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书
干部培训工作总结2015
2015/05/25 职场文书