Posted in Javascript onMay 22, 2010
控件效果如下:
从左到右: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")); } } }
基于Asp.net与Javascript控制的日期控件
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@