//Default.aspx文件
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script type="text/javascript">
var bigArray=new Array(1,3,5,7,8,10,12);
function OnSelectChange(year,month,day)
{
if(month.value==2)//选中的月份为2月
{
if(checkYear(year.value))//闰年
{
fillDay(day,29);
}
else
{
fillDay(day,28);
}
}
else
{
if(inArray(month.value,bigArray))
{
fillDay(day,31);
}
else
{
fillDay(day,30);
}
}
}
function checkYear(year)
{
return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) ? 1 : 0;
}
function fillDay(day,days)
{
while(day.options.length>0)
{
day.remove(0);
}
for(i=1;i<=days;i++)
{
var oOption=document.createElement("OPTION");
if(i<10)
{
oOption.innerText="0"+i;
}
else
{
oOption.innerText=i;
}
oOption.value=i;
day.appendChild(oOption);
}
}
function inArray(oObj,oArray)
{
for(i=0;i<oArray.length;i++)
{
if(oObj==oArray[i])
{
return true;
}
}
return false;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="Year" runat="server">
</asp:DropDownList>
<asp:DropDownList ID="Month" runat="server">
</asp:DropDownList>
<asp:DropDownList ID="Day" runat="server">
</asp:DropDownList></div>
</form>
</body>
</html>
//Default.aspx.cs文件
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//填充DropDownList
int i = 0;
Year.Items.Clear();
for (i = 1900; i <= DateTime.Now.Year; i++)
{
ListItem item = new ListItem(i.ToString(), i.ToString());
Year.Items.Add(item);
}
Month.Items.Clear();
for (i = 1; i <= 12; i++)
{
string t = i < 10 ? "0" + i.ToString() : i.ToString();
ListItem item = new ListItem(t, i.ToString());
Month.Items.Add(item);
}
Day.Items.Clear();
for (i = 1; i <= 31; i++)
{
string t = i < 10 ? "0" + i.ToString() : i.ToString();
ListItem item = new ListItem(t, i.ToString());
Day.Items.Add(item);
}
//给年和月的onchange 绑定方法,用于处理闰年的情况
Year.Attributes["onchange"] = "OnSelectChange(" + Year.ClientID + "," + Month.ClientID + "," + Day.ClientID + ");";
Month.Attributes["onchange"] = "OnSelectChange(" + Year.ClientID + "," + Month.ClientID + "," + Day.ClientID + ");";
Year.SelectedValue = DateTime.Now.Year.ToString();
Month.SelectedValue = DateTime.Now.Month.ToString();
Day.SelectedValue = DateTime.Now.Day.ToString();
}
}
//公共属性,用于获取设置整个控件的日期值
public DateTime Date
{
get { return DateTime.Parse(Year.SelectedValue + "-" + Month.SelectedValue + "-" + Day.SelectedValue); }
set
{
Year.SelectedValue = value.Year.ToString();
Month.SelectedValue = value.Month.ToString();
Day.SelectedValue = value.Day.ToString();
}
}
}