日期控制項源碼
來源:互聯網
上載者:User
一個日期控制項源碼!大家可以參考一下!
<br /> 下拉的選擇日期控制項(user control )<br /> YearMonthDayDownDropList.ascx:<br /> <%@ Control Language="c#" AutoEventWireup="false"<br /> Codebehind="YearMonthDayDownDropList.ascx.cs"<br /> Inherits="micrm.Modules.YearMonthDayDownDropList"<br /> TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%><br /> <table id="Table1" cellSpacing="0" cellPadding="0"><br /> <tr><br /> <td><SELECT id=<%=YearName%><br /> onclick=<%=javascriptFunName%><br /> style="WIDTH: 53px; HEIGHT: 61px" name=<%=YearName%>><br /> <%<br /> FillOptions(2000,ServerNowYear,ServerYear);%><br /> </SELECT><br /> <td><br /> <DIV>年</DIV><br /> </td><br /> <td><SELECT id=<%=MonthName%> style="WIDTH: 45px;<br /> HEIGHT:<br /> 61px" onclick=<%=javascriptFunName%><br />name=<%=MonthName%>><br /> <%<br /> FillOptions(1,12,ServerMonth);%><br /> </SELECT><br /> <td><br /> <DIV>月</DIV><br /> </td><br /> <td><SELECT id=<%=DayName%> style="WIDTH: 45px; HEIGHT:<br /> 61px" name=<%=DayName%>><br /> <%<br /> FillOptions(1,ServerMonthDays,ServerDay); %><br /> </SELECT></td><br /> <td><br /> <DIV>日</DIV><br /> </td><br /> </tr><br /> </table></p><p> 在YearMonthDayDownDropList.ascx.cs中:<br /> namespace micrm.Modules<br /> {<br /> using System;<br /> using System.Data;<br /> using System.Drawing;<br /> using System.Web;<br /> using System.Web.UI.WebControls;<br /> using System.Web.UI.HtmlControls;<br /> /// <summary><br /> /// YearMonthDayDownDropList 的摘要說明。<br /> /// </summary><br /> public abstract class YearMonthDayDownDropList :<br /> System.Web.UI.UserControl<br /> {<br /> //選擇的年月日如:20021225<br /> public string YearMonthDay<br /> {<br /> get<br /> {<br /> return<br /> Request.Form[YearName]+Request.Form[MonthName]+Request.Form[DayName];<br /> }<br /> }<br /> protected int ServerYear; //伺服器當前選擇年<br /> protected int ServerMonth;//伺服器當前月<br /> protected int ServerNowYear; //伺服器當前年<br /> protected int ServerDay; //伺服器當前天<br /> protected int ServerMonthDays;//當前月天數<br /> protected string javascriptFunName; //此user<br /> control發出的函數名稱<br /> protected string YearName; //此user control發出的年控制項的名稱<br /> protected string MonthName;//此user control發出的月控制項的名稱<br /> protected string DayName; //此user control發出的日控制項的名稱<br /> private void Page_Load(object sender, System.EventArgs<br />e)<br /> {<br /> // 在此處放置使用者代碼以初始化頁面<br /> string id= this.UniqueID;<br /> if(!this.Page.IsClientScriptBlockRegistered(id))<br /> {<br /> javascriptFunName="chanday"+id+"()";<br /> YearName="year"+id;<br /> MonthName="month"+id;<br /> DayName="day"+id;<br /> string scriptString ="<script language=javascript>";<br /> scriptString=scriptString+"function "+javascriptFunName;<br /> scriptString=scriptString+ "{ var days;";<br /> scriptString=scriptString+" var currentyear;";<br /> scriptString=scriptString +"days=31;";<br /> scriptString=scriptString+"<br /> if(window.document.forms[0]."+MonthName+".value==04||window.document.forms[0]."+MonthName+".value==06||window.document.forms[0]."+MonthName+".value==09||window.document.forms[0]."+MonthName+".value==11)";<br /> scriptString=scriptString+" days=30;";<br /> scriptString=scriptString+"else<br /> if(window.document.forms[0]."+MonthName+".value==02) {";<br /> scriptString=scriptString+"Nowyear=window.document.forms[0]."+YearName+".value<br /> ;";<br /> scriptString=scriptString+ " if((Nowyear%4==0<br /> &&Nowyear%100!=0) || Nowyear%400==0)";<br /> scriptString=scriptString+" days=29;";<br /> scriptString=scriptString+" else days=28;";<br /> scriptString=scriptString+" }";<br /> scriptString=scriptString+ "<br /> flen=window.document.forms[0]."+DayName+".length ;";<br /> scriptString=scriptString+"<br /> window.document.forms[0]."+DayName+".length =days;";<br /> scriptString=scriptString+ " i=flen+1;";<br /> scriptString=scriptString+"for(i;i<=days;i++)";<br /> scriptString=scriptString+"{";<br /> scriptString=scriptString+"<br /> window.document.forms[0]."+DayName+".options(i-1).text=i;";<br /> scriptString=scriptString+"<br /> window.document.forms[0]."+DayName+".options(i-1).value=i;";<br /> scriptString=scriptString+" }";<br /> scriptString=scriptString+"}";<br /> scriptString=scriptString+"</script>";<br /> this.Page.RegisterClientScriptBlock(id, scriptString);<br /> }<br /> DateTime now=DateTime.Today;<br /> ServerNowYear =now.Year ;<br /> if(!Page.IsPostBack)<br /> {<br /> ServerYear=ServerNowYear ;<br /> ServerMonth=now.Month;<br /> ServerDay=now.Day;<br /> ServerMonthDays=GetNowMonthDays(ServerYear,ServerMonth);<br /> }<br /> else<br /> {<br /> ServerYear=Convert.ToInt32(Request.Form[YearName]);<br /> ServerMonth=Convert.ToInt32(Request.Form[MonthName]);<br /> ServerDay= Convert.ToInt32(Request.Form[DayName]);<br /> ServerMonthDays=GetNowMonthDays(ServerYear,ServerMonth);<br /> }<br /> }<br /> private int GetNowMonthDays(int ServerYear,int<br /> ServerMonth)<br /> {<br /> int ServerMonthDays=31;<br /> if(ServerMonth==4||ServerMonth==6||ServerMonth==9||ServerMonth==11)<br /> ServerMonthDays=30;<br /> else if(ServerMonth==02)<br /> {<br /> if((ServerYear%4==0 &&ServerYear%100!=0) ||<br /> ServerYear%400==0)<br /> ServerMonthDays=29;<br /> else ServerMonthDays=28;<br /> }<br /> return ServerMonthDays;<br /> }<br /> protected void FillOptions(int StartValue,int<br /> OptionsLength,int SelectedOption)<br /> {<br /> for(int j=StartValue;j<=OptionsLength;j++)<br /> {<br /> string ShowOption;<br /> if(j<10)<br /> ShowOption="0"+j.ToString();<br /> else ShowOption=j.ToString();<br /> if(j==SelectedOption)<br /> Response.Write(" <OPTION value="+ShowOption+"<br /> selected>"+ShowOption+"</OPTION>");<br /> else Response.Write(" <OPTION value="+ShowOption+"<br /> >"+ShowOption+"</OPTION>");<br /> }<br /> }<br /> #region Web Form Designer generated code<br /> override protected void OnInit(EventArgs e)<br /> {<br /> //<br /> // CODEGEN:該調用是 ASP.NET Web Form設計器所必需的。<br /> //<br /> InitializeComponent();<br /> base.OnInit(e);<br /> }<br /> /// 設計器支援所需的方法 - 不要使用<br /> /// 代碼編輯器修改此方法的內容。<br /> /// </summary><br /> private void InitializeComponent()<br /> {<br /> this.Load += new System.EventHandler(this.Page_Load);<br /> }<br /> #endregion<br /> }<br /> }</p><p>