下拉的选择日期控件(user control ),功能完善,修改了bug

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

YearMonthDayDownDropList.ascx:

<%@ Control Language="c#" AutoEventWireup="false"

Codebehind="YearMonthDayDownDropList.ascx.cs"

Inherits="micrm.Modules.YearMonthDayDownDropList"

TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>

<table id="Table1" cellSpacing="0" cellPadding="0">

<tr>

<td><SELECT id=<%=YearName%> onclick=<%=JavascriptFunName%>

style="WIDTH: 53px; HEIGHT: 61px" name=<%=YearName%>>

<%

FillOptions(2000,ServerNowYear,ServerYear);%>

</SELECT>

<td>

<DIV>年</DIV>

</td>

<td><SELECT id=<%=MonthName%> style="WIDTH: 45px; HEIGHT:

61px" onclick=<%=JavascriptFunName%> name=<%=MonthName%>>

<%

FillOptions(1,12,ServerMonth);%>

</SELECT>

<td>

<DIV>月</DIV>

</td>

<td><SELECT id=<%=DayName%> style="WIDTH: 45px; HEIGHT:

61px" name=<%=DayName%>>

<%

FillOptions(1,ServerMonthDays,ServerDay); %>

</SELECT></td>

<td>

<DIV>日</DIV>

</td>

</tr>

</table>

在YearMonthDayDownDropList.ascx.cs中:

namespace micrm.Modules

{

using System;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

/// <summary>

/// YearMonthDayDownDropList 的摘要说明。

/// </summary>

public abstract class YearMonthDayDownDropList : System.Web.UI.UserControl

{

//选择的年月日如:20021225

public string YearMonthDay

{

get

{

return Request.Form[YearName]+Request.Form[MonthName]+Request.Form[DayName];

}

}

protected int ServerYear; //服务器当前选择年

protected int ServerMonth;//服务器当前月

protected int ServerNowYear; //服务器当前年

protected int ServerDay; //服务器当前天

protected int ServerMonthDays;//当前月天数

protected string JavascriptFunName; //此user control发出的函数名称

protected string YearName; //此user control发出的年控件的名称

protected string MonthName;//此user control发出的月控件的名称

protected string DayName; //此user control发出的日控件的名称

private void Page_Load(object sender, System.EventArgs e)

{

// 在此处放置用户代码以初始化页面

string id= this.UniqueID;

if(!this.Page.IsClientScriptBlockRegistered(id))

{

JavascriptFunName="chanday"+id+"()";

YearName="year"+id;

MonthName="month"+id;

DayName="day"+id;

string scriptString ="<script language=javascript>";

scriptString=scriptString+"function "+JavascriptFunName;

scriptString=scriptString+ "{ var days;";

scriptString=scriptString+" var currentyear;";

scriptString=scriptString +"days=31;";

scriptString=scriptString+" 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)";

scriptString=scriptString+" days=30;";

scriptString=scriptString+"else if(window.document.forms[0]."+MonthName+".value==02) {";

scriptString=scriptString+"Nowyear=window.document.forms[0]."+YearName+".value ;";

scriptString=scriptString+ " if((Nowyear%4==0 &&Nowyear%100!=0) || Nowyear%400==0)";

scriptString=scriptString+" days=29;";

scriptString=scriptString+" else days=28;";

scriptString=scriptString+" }";

scriptString=scriptString+ " flen=window.document.forms[0]."+DayName+".length ;";

scriptString=scriptString+" window.document.forms[0]."+DayName+".length =days;";

scriptString=scriptString+ " i=flen+1;";

scriptString=scriptString+"for(i;i<=days;i++)";

scriptString=scriptString+"{";

scriptString=scriptString+" window.document.forms[0]."+DayName+".options(i-1).text=i;";

scriptString=scriptString+" window.document.forms[0]."+DayName+".options(i-1).value=i;";

scriptString=scriptString+" }";

scriptString=scriptString+"}";

scriptString=scriptString+"</script>";

this.Page.RegisterClientScriptBlock(id, scriptString);

}

DateTime now=DateTime.Today;

ServerNowYear =now.Year ;

if(!Page.IsPostBack)

{

ServerYear=ServerNowYear ;

ServerMonth=now.Month;

ServerDay=now.Day;

ServerMonthDays=GetNowMonthDays(ServerYear,ServerMonth);

}

else

{

ServerYear=Convert.ToInt32(Request.Form[YearName]);

ServerMonth=Convert.ToInt32(Request.Form[MonthName]);

ServerDay= Convert.ToInt32(Request.Form[DayName]);

ServerMonthDays=GetNowMonthDays(ServerYear,ServerMonth);

}

}

private int GetNowMonthDays(int ServerYear,int ServerMonth)

{

int ServerMonthDays=31;

if(ServerMonth==4||ServerMonth==6||ServerMonth==9||ServerMonth==11)

ServerMonthDays=30;

else if(ServerMonth==02)

{

if((ServerYear%4==0 &&ServerYear%100!=0) || ServerYear%400==0)

ServerMonthDays=29;

else ServerMonthDays=28;

}

return ServerMonthDays;

}

protected void FillOptions(int StartValue,int OptionsLength,int SelectedOption)

{

for(int j=StartValue;j<=OptionsLength;j++)

{

string ShowOption;

if(j<10)

ShowOption="0"+j.ToString();

else ShowOption=j.ToString();

if(j==SelectedOption)

Response.Write(" <OPTION value="+ShowOption+" selected>"+ShowOption+"</OPTION>");

else Response.Write(" <OPTION value="+ShowOption+" >"+ShowOption+"</OPTION>");

}

}

#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。

//

InitializeComponent();

base.OnInit(e);

}

/// 设计器支持所需的方法 - 不要使用

/// 代码编辑器修改此方法的内容。

/// </summary>

private void InitializeComponent()

{

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航