日历控件源码开放--适用于ASP.NET 1.1
生活随笔
收集整理的這篇文章主要介紹了
日历控件源码开放--适用于ASP.NET 1.1
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
摘要:此控件跟據“封裝梅花雪疏影橫斜”的“Web Calendar ver 3.0 網頁日歷”提供的JS代碼來做的,在此特別感謝。?
using?System.Web;
using?System.Web.UI;
using?System.Collections.Specialized;
/**//*******************************************************************
?*?功能:實現單選日歷
?*??
?*?時間:2004-11
?*?作者:iceberg
?*?使用:
?*?屬性:
?*?備注:目前并未實現日歷的樣式定義,有時間的話我會加上去:)
?*********************************************************************/
namespace?KSI.WebControls
{
??/**////?<summary>
??///?通過一個彈出窗口讓用戶選擇一個日期
??///?</summary>
??public?class?Calendar?:?Control,?IPostBackDataHandler?
??{
????user_define_variable_property#region?user_define_variable_property
????//輸出用的Html代碼
????private?string?_sOutput_Html="";?
????private?string?_sJavaScript="";
????//按鈕和文本框的樣式名
????private?string?_TextBoxClass,_ButtonClass;
????//是否使用默認日期
????private?bool?_DefaultDate=false;
????//默認日期
????private?string?_Text="";
????//全球唯一標識碼,用于在客戶端注冊JavaScript腳本塊
????private?const?string?_sJavaScript_ID?=?"{d13646d6-4dca-4366-bcb4-b1bd23c035ad}";
????/**////?<summary>
????///?文本框的樣式:Class格式
????///?</summary>
????public?string?TextBoxClass
????{
??????set?{?_TextBoxClass?=?value;?}
??????get?{?return?_TextBoxClass;??}??
????}
????/**////?<summary>
????///?按鈕的樣式:Class格式
????///?</summary>
????public?string?ButtonClass
????{
??????set?{?_ButtonClass?=?value;?}
??????get?{?return?_ButtonClass;??}??
????}
????/**////?<summary>
????///?輸入的日期的值
????///?</summary>
????public?string?Text
????{
??????set?{?_Text?=?value;}
??????get?{?return?_Text;?}??
????}
????/**////?<summary>
????///?是否使用默認值。默認值為當前日期
????///?</summary>
????public?bool?DefaultDate
????{
??????set?{?_DefaultDate?=?value;}
??????get?{?return?_DefaultDate;?}
????}
????#endregion
????user_define_function#region?user_define_function
????//生成輸出到Htm的JavaScript腳本函數
????private?void?_MakeJavaScript()
????{
??????_sJavaScript+="<Script?Language=\"javascript\">\n";
??????_sJavaScript+="<!--\n";
??????_sJavaScript+="document.write(\"<div?id=meizzCalendarLayer?style='position:?absolute;?z-index:?9999;?width:?144;?height:?193;?display:?none'>\");\n";
??????_sJavaScript+="document.write(\"<iframe?name=meizzCalendarIframe?scrolling=no?frameborder=0?width=100%?height=100%></iframe></div>\");\n";
??????_sJavaScript+="function?writeIframe()\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????var?strIframe?=?\"<html><head><meta?http-equiv='Content-Type'?content='text/html;?charset=gb2312'><style>\"+\n";
??????_sJavaScript+="????\"*{font-size:?12px;?font-family:?宋體}\"+\n";
??????_sJavaScript+="????\".bg{??color:?\"+?WebCalendar.lightColor?+\";?cursor:?default;?background-color:?\"+?WebCalendar.darkColor?+\";}\"+\n";
??????_sJavaScript+="????\"table#tableMain{?width:?142;?height:?180;}\"+\n";
??????_sJavaScript+="????\"table#tableWeek?td{?color:?\"+?WebCalendar.lightColor?+\";}\"+\n";
??????_sJavaScript+="????\"table#tableDay??td{?font-weight:?bold;}\"+\n";
??????_sJavaScript+="????\"td#meizzYearHead,?td#meizzYearMonth{color:?\"+WebCalendar.wordColor?+\"}\"+\n";
??????_sJavaScript+="????\".out?{?text-align:?center;?border-top:?1px?solid?\"+?WebCalendar.DarkBorder?+\";?border-left:?1px?solid?\"+?WebCalendar.DarkBorder?+\";\"+\n";
??????_sJavaScript+="????\"border-right:?1px?solid?\"+?WebCalendar.lightColor?+\";?border-bottom:?1px?solid?\"+?WebCalendar.lightColor?+\";}\"+\n";
??????_sJavaScript+="????\".over{?text-align:?center;?border-top:?1px?solid?#FFFFFF;?border-left:?1px?solid?#FFFFFF;\"+\n";
??????_sJavaScript+="????\"border-bottom:?1px?solid?\"+?WebCalendar.DarkBorder?+\";?border-right:?1px?solid?\"+?WebCalendar.DarkBorder?+\"}\"+\n";
??????_sJavaScript+="????\"input{?border:?1px?solid?\"+?WebCalendar.darkColor?+\";?padding-top:?1px;?height:?18;?cursor:?hand;\"+\n";
??????_sJavaScript+="????\"???????color:\"+?WebCalendar.wordColor?+\";?background-color:?\"+?WebCalendar.btnBgColor?+\"}\"+\n";
??????_sJavaScript+="????\"</style></head><body?onselectstart='return?false'?style='margin:?0px'?oncontextmenu='return?false'><form?name=meizz>\";\n";
??????_sJavaScript+="????if?(WebCalendar.drag){?strIframe?+=?\"<scr\"+\"ipt?language=javascript>\"+\n";
??????_sJavaScript+="????\"var?drag=false,?cx=0,?cy=0,?o?=?parent.WebCalendar.calendar;?function?document.onmousemove(){\"+\n";
??????_sJavaScript+="????\"if(parent.WebCalendar.drag?&&?drag){if(o.style.left=='')o.style.left=0;?if(o.style.top=='')o.style.top=0;\"+\n";
??????_sJavaScript+="????\"o.style.left?=?parseInt(o.style.left)?+?window.event.clientX-cx;\"+\n";
??????_sJavaScript+="????\"o.style.top??=?parseInt(o.style.top)??+?window.event.clientY-cy;}}\"+\n";
??????_sJavaScript+="????\"function?document.onkeydown(){?switch(window.event.keyCode){??case?27?:?parent.hiddenCalendar();?break;\"+\n";
??????_sJavaScript+="????\"case?37?:?parent.prevM();?break;?case?38?:?parent.prevY();?break;?case?39?:?parent.nextM();?break;?case?40?:?parent.nextY();?break;\"+\n";
??????_sJavaScript+="????\"case?84?:?document.forms[0].today.click();?break;}?window.event.keyCode?=?0;?window.event.returnValue=?false;}\"+\n";
??????_sJavaScript+="????\"function?dragStart(){cx=window.event.clientX;?cy=window.event.clientY;?drag=true;}</scr\"+\"ipt>\"}\n";
??????_sJavaScript+="????strIframe?+=?\"<select?name=tmpYearSelect??onblur='parent.hiddenSelect(this)'?style='z-index:1;position:absolute;top:3;left:18;display:none'\"+\n";
??????_sJavaScript+="????\"?onchange='parent.WebCalendar.thisYear?=this.value;?parent.hiddenSelect(this);?parent.writeCalendar();'></select>\"+\n";
??????_sJavaScript+="????\"<select?name=tmpMonthSelect?onblur='parent.hiddenSelect(this)'?style='z-index:1;?position:absolute;top:3;left:74;display:none'\"+\n";
??????_sJavaScript+="????\"?onchange='parent.WebCalendar.thisMonth=this.value;?parent.hiddenSelect(this);?parent.writeCalendar();'></select>\"+\n";
??????_sJavaScript+="????\"<table?id=tableMain?class=bg?border=0?cellspacing=2?cellpadding=0>\"+\n";
??????_sJavaScript+="????\"<tr><td?width=140?height=19?bgcolor='\"+?WebCalendar.lightColor?+\"'>\"+\n";
??????_sJavaScript+="????\"????<table?width=140?id=tableHead?border=0?cellspacing=1?cellpadding=0><tr?align=center>\"+\n";
??????_sJavaScript+="????\"????<td?width=15?height=19?class=bg?title='向前翻?1?月快捷鍵:←'?style='cursor:?hand'?onclick='parent.prevM()'><b><</b></td>\"+\n";
??????_sJavaScript+="????\"????<td?width=60?id=meizzYearHead??title='點擊此處選擇年份'?onclick='parent.funYearSelect(parseInt(this.innerText,?10))'\"+\n";
??????_sJavaScript+="????\"????????onmouseover='this.bgColor=parent.WebCalendar.darkColor;?this.style.color=parent.WebCalendar.lightColor'\"+\n";
??????_sJavaScript+="????\"????????onmouseout='this.bgColor=parent.WebCalendar.lightColor;?this.style.color=parent.WebCalendar.wordColor'></td>\"+\n";
??????_sJavaScript+="????\"????<td?width=50?id=meizzYearMonth?title='點擊此處選擇月份'?onclick='parent.funMonthSelect(parseInt(this.innerText,?10))'\"+\n";
??????_sJavaScript+="????\"????????onmouseover='this.bgColor=parent.WebCalendar.darkColor;?this.style.color=parent.WebCalendar.lightColor'\"+\n";
??????_sJavaScript+="????\"????????onmouseout='this.bgColor=parent.WebCalendar.lightColor;?this.style.color=parent.WebCalendar.wordColor'></td>\"+\n";
??????_sJavaScript+="????\"????<td?width=15?class=bg?title='向后翻?1?月快捷鍵:→'?onclick='parent.nextM()'?style='cursor:?hand'><b>></b></td></tr></table>\"+\n";
??????_sJavaScript+="????\"</td></tr><tr><td?height=20><table?id=tableWeek?border=1?width=140?cellpadding=0?cellspacing=0?\";\n";
??????_sJavaScript+="????if(WebCalendar.drag){strIframe?+=?\"onmousedown='dragStart()'?onmouseup='drag=false'?onmouseout='drag=false'\";}\n";
??????_sJavaScript+="????strIframe?+=?\"?borderColorLight='\"+?WebCalendar.darkColor?+\"'?borderColorDark='\"+?WebCalendar.lightColor?+\"'>\"+\n";
??????_sJavaScript+="????\"????<tr?align=center><td?height=20>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr></table>\"+\n";
??????_sJavaScript+="????\"</td></tr><tr><td?valign=top?width=140?bgcolor='\"+?WebCalendar.lightColor?+\"'>\"+\n";
??????_sJavaScript+="????\"????<table?id=tableDay?height=120?width=140?border=0?cellspacing=1?cellpadding=0>\";\n";
??????_sJavaScript+="?????????for(var?x=0;?x<5;?x++){?strIframe?+=?\"<tr>\";\n";
??????_sJavaScript+="?????????for(var?y=0;?y<7;?y++)??strIframe?+=?\"<td?class=out?id='meizzDay\"+?(x*7+y)?+\"'></td>\";?strIframe?+=?\"</tr>\";}\n";
??????_sJavaScript+="?????????strIframe?+=?\"<tr>\";\n";
??????_sJavaScript+="?????????for(var?x=35;?x<39;?x++)?strIframe?+=?\"<td?class=out?id='meizzDay\"+?x?+\"'></td>\";\n";
??????_sJavaScript+="?????????strIframe?+=\"<td?colspan=3?class=out?title='\"+?WebCalendar.regInfo?+\"'><input?style='?background-color:?\"+\n";
??????_sJavaScript+="?????????WebCalendar.btnBgColor?+\";cursor:?hand;?padding-top:?4px;?width:?100%;?height:?100%;?border:?0'?οnfοcus='this.blur()'\"+\n";
??????_sJavaScript+="?????????\"?type=button?value=' ? ?關閉'?onclick='parent.hiddenCalendar()'></td></tr></table>\"+\n";
??????_sJavaScript+="????\"</td></tr><tr><td?height=20?width=140?bgcolor='\"+?WebCalendar.lightColor?+\"'>\"+\n";
??????_sJavaScript+="????\"????<table?border=0?cellpadding=1?cellspacing=0?width=140>\"+\n";
??????_sJavaScript+="????\"????<tr><td><input?name=prevYear?title='向前翻?1?年快捷鍵:↑'?onclick='parent.prevY()'?type=button?value='<<'\"+\n";
??????_sJavaScript+="????\"????onfocus='this.blur()'?style='meizz:expression(this.disabled=parent.WebCalendar.thisYear==1000)'><input\"+\n";
??????_sJavaScript+="????\"????onfocus='this.blur()'?name=prevMonth?title='向前翻?1?月快捷鍵:←'?onclick='parent.prevM()'?type=button?value='< '>\"+\n";
??????_sJavaScript+="????\"????</td><td?align=center><input?name=today?type=button?value='今天'?onfocus='this.blur()'?style='width:?50'?title='當前日期快捷鍵:T'\"+\n";
???
??????_sJavaScript+="????\"????onclick="?+?@"\"?+?"\""?+?"parent.returnDate(new?Date().getDate()?+'/'+?(new?Date().getMonth()?+1)?+'/'+?new?Date().getFullYear())";
??????//?"????οnclick=??????\??????"?????parent.returnDate(new?Date().getDate()?+'/'+?(new?Date().getMonth()?+1)?+'/'+?new?Date().getFullYear())?
??????_sJavaScript+=@"\"?+?"\""?+?">"?+?"\"+\n";
??????//??\?????"??????>?????"?+
??????_sJavaScript+="????\"????</td><td?align=right><input?title='向后翻?1?月快捷鍵:→'?name=nextMonth?onclick='parent.nextM()'?type=button?value=' >'\"+\n";
??????_sJavaScript+="????\"????onfocus='this.blur()'><input?name=nextYear?title='向后翻?1?年快捷鍵:↓'?onclick='parent.nextY()'?type=button?value='>>'\"+\n";
??????_sJavaScript+="????\"????onfocus='this.blur()'?style='meizz:expression(this.disabled=parent.WebCalendar.thisYear==9999)'></td></tr></table>\"+\n";
??????_sJavaScript+="????\"</td></tr><table></form></body></html>\";\n";
??????_sJavaScript+="????with(WebCalendar.iframe)\n";
??????_sJavaScript+="????{\n";
??????_sJavaScript+="????????document.writeln(strIframe);?document.close();\n";
??????_sJavaScript+="????????for(var?i=0;?i<39;?i++)\n";
??????_sJavaScript+="????????{\n";
??????_sJavaScript+="????????????WebCalendar.dayObj[i]?=?eval(\"meizzDay\"+?i);\n";
??????_sJavaScript+="????????????WebCalendar.dayObj[i].onmouseover?=?dayMouseOver;\n";
??????_sJavaScript+="????????????WebCalendar.dayObj[i].onmouseout??=?dayMouseOut;\n";
??????_sJavaScript+="????????????WebCalendar.dayObj[i].onclick?????=?returnDate;\n";
??????_sJavaScript+="????????}\n";
??????_sJavaScript+="????}\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="function?WebCalendar()?//初始化日歷的設置\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????this.regInfo????=?\"請單擊選擇日期 關閉的快捷鍵:[Esc]\";\n";
??????_sJavaScript+="????this.regInfo???+=?\"Ver?1.0:FengXq?Email:Fpsky2000@163.com\";\n";
??????_sJavaScript+="????this.daysMonth??=?new?Array(31,?28,?31,?30,?31,?30,?31,?31,?30,?31,?30,?31);\n";
??????_sJavaScript+="????this.day????????=?new?Array(39);????????????//定義日歷展示用的數組\n";
??????_sJavaScript+="????this.dayObj?????=?new?Array(39);????????????//定義日期展示控件數組\n";
??????_sJavaScript+="????this.dateStyle??=?null;?????????????????????//保存格式化后日期數組\n";
??????_sJavaScript+="????this.objExport??=?null;?????????????????????//日歷回傳的顯示控件\n";
??????_sJavaScript+="????this.eventSrc???=?null;?????????????????????//日歷顯示的觸發控件\n";
??????_sJavaScript+="????this.inputDate??=?null;?????????????????????//轉化外的輸入的日期(d/m/yyyy)\n";
??????_sJavaScript+="????this.thisYear???=?new?Date().getFullYear();?//定義年的變量的初始值\n";
??????_sJavaScript+="????this.thisMonth??=?new?Date().getMonth()+?1;?//定義月的變量的初始值\n";
??????_sJavaScript+="????this.thisDay????=?new?Date().getDate();?????//定義日的變量的初始值\n";
??????_sJavaScript+="????this.today??????=?this.thisDay?+\"/\"+?this.thisMonth?+\"/\"+?this.thisYear;???//今天(d/m/yyyy)\n";
??????_sJavaScript+="????this.iframe?????=?window.frames(\"meizzCalendarIframe\");?//日歷的?iframe?載體\n";
??????_sJavaScript+="????this.calendar???=?getObjectById(\"meizzCalendarLayer\");??//日歷的層\n";
??????_sJavaScript+="????this.dateReg????=?\"\";???????????//日歷格式驗證的正則式\n";
??????_sJavaScript+="????this.yearFall???=?50;???????????//定義年下拉框的年差值\n";
??????_sJavaScript+="????this.format?????=?\"yyyy-mm-dd\";?//回傳日期的格式\n";
??????_sJavaScript+="????this.timeShow???=?false;????????//是否返回時間\n";
??????_sJavaScript+="????this.drag???????=?true;?????????//是否允許拖動\n";
??????_sJavaScript+="????this.darkColor??=?\"#97BAE2\";????//控件的暗色\n";
??????_sJavaScript+="????this.lightColor?=?\"#FFFFFF\";????//控件的亮色\n";
??????_sJavaScript+="????this.btnBgColor?=?\"#E6E6FA\";????//控件的按鈕背景色\n";
??????_sJavaScript+="????this.wordColor??=?\"#000080\";????//控件的文字顏色\n";
??????_sJavaScript+="????this.wordDark???=?\"#DCDCDC\";????//控件的暗文字顏色\n";
??????_sJavaScript+="????this.dayBgColor?=?\"#F5F5FA\";????//日期數字背景色\n";
??????_sJavaScript+="????this.todayColor?=?\"#FF0000\";????//今天在日歷上的標示背景色\n";
??????_sJavaScript+="????this.DarkBorder?=?\"#D4D0C8\";????//日期顯示的立體表達色\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="???var?WebCalendar?=?new?WebCalendar();\n";
??????_sJavaScript+="function?calendar()?//主調函數\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????var?e?=?window.event.srcElement;???writeIframe();\n";
??????_sJavaScript+="????var?o?=?WebCalendar.calendar.style;?WebCalendar.eventSrc?=?e;\n";
??????_sJavaScript+="?if?(arguments.length?==?0)?WebCalendar.objExport?=?e;\n";
??????_sJavaScript+="????else?WebCalendar.objExport?=?eval(arguments[0]);\n";
??????_sJavaScript+="????WebCalendar.iframe.tableWeek.style.cursor?=?WebCalendar.drag???\"move\"?:?\"default\";\n";
??????_sJavaScript+="?var?t?=?e.offsetTop,??h?=?e.clientHeight,?l?=?e.offsetLeft,?p?=?e.type;\n";
??????_sJavaScript+="?while?(e?=?e.offsetParent){t?+=?e.offsetTop;?l?+=?e.offsetLeft;}\n";
??????_sJavaScript+="????o.display?=?\"\";?WebCalendar.iframe.document.body.focus();\n";
??????_sJavaScript+="????var?cw?=?WebCalendar.calendar.clientWidth,?ch?=?WebCalendar.calendar.clientHeight;\n";
??????_sJavaScript+="????var?dw?=?document.body.clientWidth,?dl?=?document.body.scrollLeft,?dt?=?document.body.scrollTop;\n";
??????_sJavaScript+="????if?(document.body.clientHeight?+?dt?-?t?-?h?>=?ch)?o.top?=?(p==\"image\")??t?+?h?:?t?+?h?+?6;\n";
??????_sJavaScript+="????else?o.top??=?(t?-?dt?<?ch)???((p==\"image\")??t?+?h?:?t?+?h?+?6)?:?t?-?ch;\n";
??????_sJavaScript+="????if?(dw?+?dl?-?l?>=?cw)?o.left?=?l;?else?o.left?=?(dw?>=?cw)???dw?-?cw?+?dl?:?dl;\n";
???
??????_sJavaScript+=@"if??(!WebCalendar.timeShow)?WebCalendar.dateReg?=?/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;"?+?"\n";
??????//if??(!WebCalendar.timeShow)?WebCalendar.dateReg?=?/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
??????_sJavaScript+=@"else?WebCalendar.dateReg?=?/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})?(\d{1,2}):(\d{1,2}):(\d{1,2})$/;"?+?"\n";
??????//?else?WebCalendar.dateReg?=?/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})?(\d{1,2}):(\d{1,2}):(\d{1,2})$/;
??????_sJavaScript+="????try{\n";
??????_sJavaScript+="????????if?(WebCalendar.objExport.value.trim()?!=?\"\"){\n";????
??????_sJavaScript+="????????????WebCalendar.dateStyle?=?WebCalendar.objExport.value.trim().match(WebCalendar.dateReg);\n";
??????_sJavaScript+="????????????if?(WebCalendar.dateStyle?==?null)\n";
??????_sJavaScript+="????????????{\n";
??????_sJavaScript+="????????????????WebCalendar.thisYear???=?new?Date().getFullYear();\n";
??????_sJavaScript+="????????????????WebCalendar.thisMonth??=?new?Date().getMonth()+?1;\n";
??????_sJavaScript+="????????????????WebCalendar.thisDay????=?new?Date().getDate();\n";
??????_sJavaScript+="????????????????alert(\"原文本框里的日期有錯誤!可能與你定義的顯示時分秒有沖突!\");\n";
??????_sJavaScript+="????????????????writeCalendar();?return?false;\n";
??????_sJavaScript+="????????????}\n";
??????_sJavaScript+="????????????else\n";
??????_sJavaScript+="????????????{\n";
??????_sJavaScript+="????????????????WebCalendar.thisYear???=?parseInt(WebCalendar.dateStyle[1],?10);\n";
??????_sJavaScript+="????????????????WebCalendar.thisMonth??=?parseInt(WebCalendar.dateStyle[3],?10);\n";
??????_sJavaScript+="????????????????WebCalendar.thisDay????=?parseInt(WebCalendar.dateStyle[4],?10);\n";
??????_sJavaScript+="????????????????WebCalendar.inputDate??=?parseInt(WebCalendar.thisDay,?10)?+\"/\"+?parseInt(WebCalendar.thisMonth,?10)?+\"/\"+?\n";
??????_sJavaScript+="????????????????parseInt(WebCalendar.thisYear,?10);?writeCalendar();\n";
??????_sJavaScript+="????????????}\n";
??????_sJavaScript+="????????}??else?writeCalendar();\n";
??????_sJavaScript+="????}\n";
??????_sJavaScript+="??catch(e){writeCalendar();}\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="function?funMonthSelect()?//月份的下拉框\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????var?m?=?isNaN(parseInt(WebCalendar.thisMonth,?10))???new?Date().getMonth()?+?1?:?parseInt(WebCalendar.thisMonth);\n";
??????_sJavaScript+="????var?e?=?WebCalendar.iframe.document.forms[0].tmpMonthSelect;\n";
??????_sJavaScript+="????for?(var?i=1;?i<13;?i++)?e.options.add(new?Option(i?+\"月\",?i));\n";
??????_sJavaScript+="????e.style.display?=?\"\";?e.value?=?m;?e.focus();?window.status?=?e.style.top;\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="function?funYearSelect()?//年份的下拉框\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????var?n?=?WebCalendar.yearFall;\n";
??????_sJavaScript+="????var?e?=?WebCalendar.iframe.document.forms[0].tmpYearSelect;\n";
??????_sJavaScript+="????var?y?=?isNaN(parseInt(WebCalendar.thisYear,?10))???new?Date().getFullYear()?:?parseInt(WebCalendar.thisYear);\n";
??????_sJavaScript+="????????y?=?(y?<=?1000)??1000?:?((y?>=?9999)??9999?:?y);\n";
??????_sJavaScript+="????var?min?=?(y?-?n?>=?1000)???y?-?n?:?1000;\n";
??????_sJavaScript+="????var?max?=?(y?+?n?<=?9999)???y?+?n?:?9999;\n";
??????_sJavaScript+="????????min?=?(max?==?9999)???max-n*2?:?min;\n";
??????_sJavaScript+="????????max?=?(min?==?1000)???min+n*2?:?max;\n";
??????_sJavaScript+="????for?(var?i=min;?i<=max;?i++)?e.options.add(new?Option(i?+\"年\",?i));\n";
??????_sJavaScript+="????e.style.display?=?\"\";?e.value?=?y;?e.focus();\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="function?prevM()??//往前翻月份\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????WebCalendar.thisDay?=?1;\n";
??????_sJavaScript+="????if?(WebCalendar.thisMonth==1)\n";
??????_sJavaScript+="????{\n";
??????_sJavaScript+="????????WebCalendar.thisYear--;\n";
??????_sJavaScript+="????????WebCalendar.thisMonth=13;\n";
??????_sJavaScript+="????}\n";
??????_sJavaScript+="????WebCalendar.thisMonth--;?writeCalendar();\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="function?nextM()??//往后翻月份\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????WebCalendar.thisDay?=?1;\n";
??????_sJavaScript+="????if?(WebCalendar.thisMonth==12)\n";
??????_sJavaScript+="????{\n";
??????_sJavaScript+="????????WebCalendar.thisYear++;\n";
??????_sJavaScript+="????????WebCalendar.thisMonth=0;\n";
??????_sJavaScript+="????}\n";
??????_sJavaScript+="????WebCalendar.thisMonth++;?writeCalendar();\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="function?prevY(){WebCalendar.thisDay?=?1;?WebCalendar.thisYear--;?writeCalendar();}//往前翻?Year\n";
??????_sJavaScript+="function?nextY(){WebCalendar.thisDay?=?1;?WebCalendar.thisYear++;?writeCalendar();}//往后翻?Year\n";
??????_sJavaScript+="function?hiddenSelect(e){for(var?i=e.options.length;?i>-1;?i--)e.options.remove(i);?e.style.display=\"none\";}\n";
??????_sJavaScript+="function?getObjectById(id){?if(document.all)?return(eval(\"document.all.\"+?id));?return(eval(id));?}\n";
??????_sJavaScript+="function?hiddenCalendar(){getObjectById(\"meizzCalendarLayer\").style.display?=?\"none\";};\n";
??????_sJavaScript+="function?appendZero(n){return((\"00\"+?n).substr((\"00\"+?n).length-2));}//日期自動補零程序\n";
??????_sJavaScript+="function?String.prototype.trim()\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="?return?this.replace(/(^"?+?@"\"?+?"s*)|("?+?@"\"?+?"s*$)"?+?@"/"?+?"g,\"\");}\n";
??????//??????????????return?this.replace(/(^??????\?????s*)|(??????\?????s*$)??????/?????g,?"?");}
??????_sJavaScript+="function?dayMouseOver()\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????this.className?=?\"over\";\n";
??????_sJavaScript+="????this.style.backgroundColor?=?WebCalendar.darkColor;\n";
??????_sJavaScript+="????if(WebCalendar.day[this.id.substr(8)].split(\"/\")[1]?==?WebCalendar.thisMonth)\n";
??????_sJavaScript+="????this.style.color?=?WebCalendar.lightColor;\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="function?dayMouseOut()\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????this.className?=?\"out\";?var?d?=?WebCalendar.day[this.id.substr(8)],?a?=?d.split(\"/\");\n";
??????_sJavaScript+="????this.style.removeAttribute('backgroundColor');\n";
??????_sJavaScript+="????if(a[1]?==?WebCalendar.thisMonth?&&?d?!=?WebCalendar.today)\n";
??????_sJavaScript+="????{\n";
??????_sJavaScript+="????????if(WebCalendar.dateStyle?&&?a[0]?==?parseInt(WebCalendar.dateStyle[4],?10))\n";
??????_sJavaScript+="????????this.style.color?=?WebCalendar.lightColor;\n";
??????_sJavaScript+="????????this.style.color?=?WebCalendar.wordColor;\n";
??????_sJavaScript+="????}\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="function?writeCalendar()?//對日歷顯示的數據的處理程序\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????var?y?=?WebCalendar.thisYear;\n";
??????_sJavaScript+="????var?m?=?WebCalendar.thisMonth;?\n";
??????_sJavaScript+="????var?d?=?WebCalendar.thisDay;\n";
??????_sJavaScript+="????WebCalendar.daysMonth[1]?=?(0==y%4?&&?(y%100!=0?||?y%400==0))???29?:?28;\n";
??????_sJavaScript+="????if?(!(y<=9999?&&?y?>=?1000?&&?parseInt(m,?10)>0?&&?parseInt(m,?10)<13?&&?parseInt(d,?10)>0)){\n";
??????_sJavaScript+="????????alert(\"對不起,你輸入了錯誤的日期!\");\n";
??????_sJavaScript+="????????WebCalendar.thisYear???=?new?Date().getFullYear();\n";
??????_sJavaScript+="????????WebCalendar.thisMonth??=?new?Date().getMonth()+?1;\n";
??????_sJavaScript+="????????WebCalendar.thisDay????=?new?Date().getDate();?}\n";
??????_sJavaScript+="????y?=?WebCalendar.thisYear;\n";
??????_sJavaScript+="????m?=?WebCalendar.thisMonth;\n";
??????_sJavaScript+="????d?=?WebCalendar.thisDay;\n";
??????_sJavaScript+="????WebCalendar.iframe.meizzYearHead.innerText??=?y?+\"?年\";\n";
??????_sJavaScript+="????WebCalendar.iframe.meizzYearMonth.innerText?=?parseInt(m,?10)?+\"?月\";\n";
??????_sJavaScript+="????WebCalendar.daysMonth[1]?=?(0==y%4?&&?(y%100!=0?||?y%400==0))???29?:?28;?//閏年二月為29天\n";
??????_sJavaScript+="????var?w?=?new?Date(y,?m-1,?1).getDay();\n";
??????_sJavaScript+="????var?prevDays?=?m==1????WebCalendar.daysMonth[11]?:?WebCalendar.daysMonth[m-2];\n";
??????_sJavaScript+="????for(var?i=(w-1);?i>=0;?i--)?//這三個?for?循環為日歷賦數據源(數組?WebCalendar.day)格式是?d/m/yyyy\n";
??????_sJavaScript+="????{\n";
??????_sJavaScript+="????????WebCalendar.day[i]?=?prevDays?+\"/\"+?(parseInt(m,?10)-1)?+\"/\"+?y;\n";
??????_sJavaScript+="????????if(m==1)?WebCalendar.day[i]?=?prevDays?+\"/\"+?12?+\"/\"+?(parseInt(y,?10)-1);\n";
??????_sJavaScript+="????????prevDays--;\n";
??????_sJavaScript+="????}\n";
??????_sJavaScript+="????for(var?i=1;?i<=WebCalendar.daysMonth[m-1];?i++)?WebCalendar.day[i+w-1]?=?i?+\"/\"+?m?+\"/\"+?y;\n";
??????_sJavaScript+="????for(var?i=1;?i<39-w-WebCalendar.daysMonth[m-1]+1;?i++)\n";
??????_sJavaScript+="????{\n";
??????_sJavaScript+="????????WebCalendar.day[WebCalendar.daysMonth[m-1]+w-1+i]?=?i?+\"/\"+?(parseInt(m,?10)+1)?+\"/\"+?y;\n";
??????_sJavaScript+="????????if(m==12)?WebCalendar.day[WebCalendar.daysMonth[m-1]+w-1+i]?=?i?+\"/\"+?1?+\"/\"+?(parseInt(y,?10)+1);\n";
??????_sJavaScript+="????}\n";
??????_sJavaScript+="????for(var?i=0;?i<39;?i++)????//這個循環是根據源數組寫到日歷里顯示\n";
??????_sJavaScript+="????{\n";
??????_sJavaScript+="????????var?a?=?WebCalendar.day[i].split(\"/\");\n";
??????_sJavaScript+="????????WebCalendar.dayObj[i].innerText????=?a[0];\n";
??????_sJavaScript+="????????WebCalendar.dayObj[i].title????????=?a[2]?+\"-\"+?appendZero(a[1])?+\"-\"+?appendZero(a[0]);\n";
??????_sJavaScript+="????????WebCalendar.dayObj[i].bgColor??????=?WebCalendar.dayBgColor;\n";
??????_sJavaScript+="????????WebCalendar.dayObj[i].style.color??=?WebCalendar.wordColor;\n";
??????_sJavaScript+="????????if?((i<10?&&?parseInt(WebCalendar.day[i],?10)>20)?||?(i>27?&&?parseInt(WebCalendar.day[i],?10)<12))\n";
??????_sJavaScript+="????????????WebCalendar.dayObj[i].style.color?=?WebCalendar.wordDark;\n";
??????_sJavaScript+="????????if?(WebCalendar.inputDate==WebCalendar.day[i])????//設置輸入框里的日期在日歷上的顏色\n";
??????_sJavaScript+="????????{WebCalendar.dayObj[i].bgColor?=?WebCalendar.darkColor;?WebCalendar.dayObj[i].style.color?=?WebCalendar.lightColor;}\n";
??????_sJavaScript+="????????if?(WebCalendar.day[i]?==?WebCalendar.today)??????//設置今天在日歷上反應出來的顏色\n";
??????_sJavaScript+="????????{WebCalendar.dayObj[i].bgColor?=?WebCalendar.todayColor;?WebCalendar.dayObj[i].style.color?=?WebCalendar.lightColor;}\n";
??????_sJavaScript+="????}\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="function?returnDate()?//根據日期格式等返回用戶選定的日期\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????if(WebCalendar.objExport)\n";
??????_sJavaScript+="????{\n";
??????_sJavaScript+="????????var?returnValue;\n";
??????_sJavaScript+="????????var?a?=?(arguments.length==0)???WebCalendar.day[this.id.substr(8)].split(\"/\")?:?arguments[0].split(\"/\");\n";
??????_sJavaScript+="????????var?d?=?WebCalendar.format.match(/^("?+?@"\"?+"w{4})(-|"+?@"\"?+?"/)("+?@"\"?+?"w{1,2})"+?@"\"?+?"2("+?@"\"+"w{1,2})$/);\n";
??????//?????????????????????var?d?=?WebCalendar.format.match(/^(??????\????w{4})(-|?????\?????/)(?????\?????w{1,2})?????\?????2(?????\???w{1,2})$/);
??????_sJavaScript+="????????if(d==null){alert(\"你設定的日期輸出格式不對!請重新定義?WebCalendar.format?!\");?return?false;}\n";
??????_sJavaScript+="????????var?flag?=?d[3].length==2?||?d[4].length==2;?//判斷返回的日期格式是否要補零\n";
??????_sJavaScript+="????????returnValue?=?flag???a[2]?+d[2]+?appendZero(a[1])?+d[2]+?appendZero(a[0])?:?a[2]?+d[2]+?a[1]?+d[2]+?a[0];\n";
??????_sJavaScript+="????????if(WebCalendar.timeShow)\n";
??????_sJavaScript+="????????{\n";
??????_sJavaScript+="????????????var?h?=?new?Date().getHours(),?m?=?new?Date().getMinutes(),?s?=?new?Date().getSeconds();\n";
??????_sJavaScript+="????????????returnValue?+=?flag???\"?\"+?appendZero(h)?+\":\"+?appendZero(m)?+\":\"+?appendZero(s)?:?\"?\"+??h??+\":\"+?m?+\":\"+?s;\n";
??????_sJavaScript+="????????}\n";
??????_sJavaScript+="????????WebCalendar.objExport.value?=?returnValue;\n";
??????_sJavaScript+="????????hiddenCalendar();\n";
??????_sJavaScript+="????}\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="function?document.onclick()\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????if(WebCalendar.eventSrc?!=?window.event.srcElement)?hiddenCalendar();\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="-->\n";
??????_sJavaScript+="</script>\n";
??????_sJavaScript+="\n";
????}
????#endregion
????override_Function#region?override_Function
????/**////?<summary>
????///?重寫函數,處理控件的回發事件
????///?</summary>
????public?virtual?bool?LoadPostData(string?postDataKey,NameValueCollection?values)?
????{
??????String?presentValue?=?_Text;
??????String?postedValue?=?values[postDataKey];
??????if?(!presentValue.Equals(postedValue))
??????{
????????_Text?=?postedValue;
????????return?true;
??????}
??????return?false;
????}
????public?virtual?void?RaisePostDataChangedEvent()?
????{
????????
????}
????/**////?<summary>
????///?重寫OnPreRender(),對控件進行初始化設置
????///?</summary>
????protected?override?void?OnPreRender(EventArgs?e)
????{
??????//設置默認日期:當前日期
??????if?(_DefaultDate==true)
??????{
????????//_Text?=?System.DateTime.Now.Year.ToString()?+?"-"?+?System.DateTime.Now.Month.ToString()?+?"-"?+?System.DateTime.Now.Day.ToString();
????????_Text=System.DateTime.Now.Date.ToString("yyyy-MM-dd");
???
??????}
????}
????/**////?<summary>
????///?重寫Render函數,用Html代碼輸出控件
????///?</summary>
????protected?override?void?Render(?HtmlTextWriter?writer)
????{
??????string?_strTextBoxClass="";
??????string?_strButtonClass="";
??????//生成輸出Html控件代碼
??????_sOutput_Html?="";
??????_sOutput_Html?+=?"\n";
??????//設置樣式
??????if(_TextBoxClass!="")
??????{
????????_strTextBoxClass?=?"?class?=?'"?+?_TextBoxClass?+?"'?";
??????}
??????if(_ButtonClass!="")
??????{
????????_strButtonClass?=?"?class?=?'"?+?_ButtonClass?+?"'?";
??????}
??????_sOutput_Html?+=?"<input?type='text'?name='"?+?this.UniqueID?+?"'?size='7'?"?+?_strTextBoxClass?+?"?value='"?+?_Text?+?"'?runat='server'?>\n";???
??????_sOutput_Html?+=?"<input??"?+?_strButtonClass?+?"?type=button?value=''?οnclick='calendar("?+?this.UniqueID?+?")'>\n";
??????//生成JavaScript腳本
??????//判斷JavaScript腳本是否已經在客戶端注冊,
??????if?(Page.IsClientScriptBlockRegistered(_sJavaScript_ID))
??????{
????????//已注冊,不重復輸出角本到客戶端
??????}
??????else
??????{
????????_MakeJavaScript();
????????_sOutput_Html?+=?_sJavaScript;???
??????}
??????//在客戶端注冊JavaScript腳本
??????Page.RegisterClientScriptBlock(_sJavaScript_ID,_sJavaScript);
??????writer.Write(_sOutput_Html);
????}
????#endregion
??}
}
截圖如下:
源碼如下:
//-----------------------------------------------------------------------------------------------------------------------
?
using?System;using?System.Web;
using?System.Web.UI;
using?System.Collections.Specialized;
/**//*******************************************************************
?*?功能:實現單選日歷
?*??
?*?時間:2004-11
?*?作者:iceberg
?*?使用:
?*?屬性:
?*?備注:目前并未實現日歷的樣式定義,有時間的話我會加上去:)
?*********************************************************************/
namespace?KSI.WebControls
{
??/**////?<summary>
??///?通過一個彈出窗口讓用戶選擇一個日期
??///?</summary>
??public?class?Calendar?:?Control,?IPostBackDataHandler?
??{
????user_define_variable_property#region?user_define_variable_property
????//輸出用的Html代碼
????private?string?_sOutput_Html="";?
????private?string?_sJavaScript="";
????//按鈕和文本框的樣式名
????private?string?_TextBoxClass,_ButtonClass;
????//是否使用默認日期
????private?bool?_DefaultDate=false;
????//默認日期
????private?string?_Text="";
????//全球唯一標識碼,用于在客戶端注冊JavaScript腳本塊
????private?const?string?_sJavaScript_ID?=?"{d13646d6-4dca-4366-bcb4-b1bd23c035ad}";
????/**////?<summary>
????///?文本框的樣式:Class格式
????///?</summary>
????public?string?TextBoxClass
????{
??????set?{?_TextBoxClass?=?value;?}
??????get?{?return?_TextBoxClass;??}??
????}
????/**////?<summary>
????///?按鈕的樣式:Class格式
????///?</summary>
????public?string?ButtonClass
????{
??????set?{?_ButtonClass?=?value;?}
??????get?{?return?_ButtonClass;??}??
????}
????/**////?<summary>
????///?輸入的日期的值
????///?</summary>
????public?string?Text
????{
??????set?{?_Text?=?value;}
??????get?{?return?_Text;?}??
????}
????/**////?<summary>
????///?是否使用默認值。默認值為當前日期
????///?</summary>
????public?bool?DefaultDate
????{
??????set?{?_DefaultDate?=?value;}
??????get?{?return?_DefaultDate;?}
????}
????#endregion
????user_define_function#region?user_define_function
????//生成輸出到Htm的JavaScript腳本函數
????private?void?_MakeJavaScript()
????{
??????_sJavaScript+="<Script?Language=\"javascript\">\n";
??????_sJavaScript+="<!--\n";
??????_sJavaScript+="document.write(\"<div?id=meizzCalendarLayer?style='position:?absolute;?z-index:?9999;?width:?144;?height:?193;?display:?none'>\");\n";
??????_sJavaScript+="document.write(\"<iframe?name=meizzCalendarIframe?scrolling=no?frameborder=0?width=100%?height=100%></iframe></div>\");\n";
??????_sJavaScript+="function?writeIframe()\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????var?strIframe?=?\"<html><head><meta?http-equiv='Content-Type'?content='text/html;?charset=gb2312'><style>\"+\n";
??????_sJavaScript+="????\"*{font-size:?12px;?font-family:?宋體}\"+\n";
??????_sJavaScript+="????\".bg{??color:?\"+?WebCalendar.lightColor?+\";?cursor:?default;?background-color:?\"+?WebCalendar.darkColor?+\";}\"+\n";
??????_sJavaScript+="????\"table#tableMain{?width:?142;?height:?180;}\"+\n";
??????_sJavaScript+="????\"table#tableWeek?td{?color:?\"+?WebCalendar.lightColor?+\";}\"+\n";
??????_sJavaScript+="????\"table#tableDay??td{?font-weight:?bold;}\"+\n";
??????_sJavaScript+="????\"td#meizzYearHead,?td#meizzYearMonth{color:?\"+WebCalendar.wordColor?+\"}\"+\n";
??????_sJavaScript+="????\".out?{?text-align:?center;?border-top:?1px?solid?\"+?WebCalendar.DarkBorder?+\";?border-left:?1px?solid?\"+?WebCalendar.DarkBorder?+\";\"+\n";
??????_sJavaScript+="????\"border-right:?1px?solid?\"+?WebCalendar.lightColor?+\";?border-bottom:?1px?solid?\"+?WebCalendar.lightColor?+\";}\"+\n";
??????_sJavaScript+="????\".over{?text-align:?center;?border-top:?1px?solid?#FFFFFF;?border-left:?1px?solid?#FFFFFF;\"+\n";
??????_sJavaScript+="????\"border-bottom:?1px?solid?\"+?WebCalendar.DarkBorder?+\";?border-right:?1px?solid?\"+?WebCalendar.DarkBorder?+\"}\"+\n";
??????_sJavaScript+="????\"input{?border:?1px?solid?\"+?WebCalendar.darkColor?+\";?padding-top:?1px;?height:?18;?cursor:?hand;\"+\n";
??????_sJavaScript+="????\"???????color:\"+?WebCalendar.wordColor?+\";?background-color:?\"+?WebCalendar.btnBgColor?+\"}\"+\n";
??????_sJavaScript+="????\"</style></head><body?onselectstart='return?false'?style='margin:?0px'?oncontextmenu='return?false'><form?name=meizz>\";\n";
??????_sJavaScript+="????if?(WebCalendar.drag){?strIframe?+=?\"<scr\"+\"ipt?language=javascript>\"+\n";
??????_sJavaScript+="????\"var?drag=false,?cx=0,?cy=0,?o?=?parent.WebCalendar.calendar;?function?document.onmousemove(){\"+\n";
??????_sJavaScript+="????\"if(parent.WebCalendar.drag?&&?drag){if(o.style.left=='')o.style.left=0;?if(o.style.top=='')o.style.top=0;\"+\n";
??????_sJavaScript+="????\"o.style.left?=?parseInt(o.style.left)?+?window.event.clientX-cx;\"+\n";
??????_sJavaScript+="????\"o.style.top??=?parseInt(o.style.top)??+?window.event.clientY-cy;}}\"+\n";
??????_sJavaScript+="????\"function?document.onkeydown(){?switch(window.event.keyCode){??case?27?:?parent.hiddenCalendar();?break;\"+\n";
??????_sJavaScript+="????\"case?37?:?parent.prevM();?break;?case?38?:?parent.prevY();?break;?case?39?:?parent.nextM();?break;?case?40?:?parent.nextY();?break;\"+\n";
??????_sJavaScript+="????\"case?84?:?document.forms[0].today.click();?break;}?window.event.keyCode?=?0;?window.event.returnValue=?false;}\"+\n";
??????_sJavaScript+="????\"function?dragStart(){cx=window.event.clientX;?cy=window.event.clientY;?drag=true;}</scr\"+\"ipt>\"}\n";
??????_sJavaScript+="????strIframe?+=?\"<select?name=tmpYearSelect??onblur='parent.hiddenSelect(this)'?style='z-index:1;position:absolute;top:3;left:18;display:none'\"+\n";
??????_sJavaScript+="????\"?onchange='parent.WebCalendar.thisYear?=this.value;?parent.hiddenSelect(this);?parent.writeCalendar();'></select>\"+\n";
??????_sJavaScript+="????\"<select?name=tmpMonthSelect?onblur='parent.hiddenSelect(this)'?style='z-index:1;?position:absolute;top:3;left:74;display:none'\"+\n";
??????_sJavaScript+="????\"?onchange='parent.WebCalendar.thisMonth=this.value;?parent.hiddenSelect(this);?parent.writeCalendar();'></select>\"+\n";
??????_sJavaScript+="????\"<table?id=tableMain?class=bg?border=0?cellspacing=2?cellpadding=0>\"+\n";
??????_sJavaScript+="????\"<tr><td?width=140?height=19?bgcolor='\"+?WebCalendar.lightColor?+\"'>\"+\n";
??????_sJavaScript+="????\"????<table?width=140?id=tableHead?border=0?cellspacing=1?cellpadding=0><tr?align=center>\"+\n";
??????_sJavaScript+="????\"????<td?width=15?height=19?class=bg?title='向前翻?1?月快捷鍵:←'?style='cursor:?hand'?onclick='parent.prevM()'><b><</b></td>\"+\n";
??????_sJavaScript+="????\"????<td?width=60?id=meizzYearHead??title='點擊此處選擇年份'?onclick='parent.funYearSelect(parseInt(this.innerText,?10))'\"+\n";
??????_sJavaScript+="????\"????????onmouseover='this.bgColor=parent.WebCalendar.darkColor;?this.style.color=parent.WebCalendar.lightColor'\"+\n";
??????_sJavaScript+="????\"????????onmouseout='this.bgColor=parent.WebCalendar.lightColor;?this.style.color=parent.WebCalendar.wordColor'></td>\"+\n";
??????_sJavaScript+="????\"????<td?width=50?id=meizzYearMonth?title='點擊此處選擇月份'?onclick='parent.funMonthSelect(parseInt(this.innerText,?10))'\"+\n";
??????_sJavaScript+="????\"????????onmouseover='this.bgColor=parent.WebCalendar.darkColor;?this.style.color=parent.WebCalendar.lightColor'\"+\n";
??????_sJavaScript+="????\"????????onmouseout='this.bgColor=parent.WebCalendar.lightColor;?this.style.color=parent.WebCalendar.wordColor'></td>\"+\n";
??????_sJavaScript+="????\"????<td?width=15?class=bg?title='向后翻?1?月快捷鍵:→'?onclick='parent.nextM()'?style='cursor:?hand'><b>></b></td></tr></table>\"+\n";
??????_sJavaScript+="????\"</td></tr><tr><td?height=20><table?id=tableWeek?border=1?width=140?cellpadding=0?cellspacing=0?\";\n";
??????_sJavaScript+="????if(WebCalendar.drag){strIframe?+=?\"onmousedown='dragStart()'?onmouseup='drag=false'?onmouseout='drag=false'\";}\n";
??????_sJavaScript+="????strIframe?+=?\"?borderColorLight='\"+?WebCalendar.darkColor?+\"'?borderColorDark='\"+?WebCalendar.lightColor?+\"'>\"+\n";
??????_sJavaScript+="????\"????<tr?align=center><td?height=20>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr></table>\"+\n";
??????_sJavaScript+="????\"</td></tr><tr><td?valign=top?width=140?bgcolor='\"+?WebCalendar.lightColor?+\"'>\"+\n";
??????_sJavaScript+="????\"????<table?id=tableDay?height=120?width=140?border=0?cellspacing=1?cellpadding=0>\";\n";
??????_sJavaScript+="?????????for(var?x=0;?x<5;?x++){?strIframe?+=?\"<tr>\";\n";
??????_sJavaScript+="?????????for(var?y=0;?y<7;?y++)??strIframe?+=?\"<td?class=out?id='meizzDay\"+?(x*7+y)?+\"'></td>\";?strIframe?+=?\"</tr>\";}\n";
??????_sJavaScript+="?????????strIframe?+=?\"<tr>\";\n";
??????_sJavaScript+="?????????for(var?x=35;?x<39;?x++)?strIframe?+=?\"<td?class=out?id='meizzDay\"+?x?+\"'></td>\";\n";
??????_sJavaScript+="?????????strIframe?+=\"<td?colspan=3?class=out?title='\"+?WebCalendar.regInfo?+\"'><input?style='?background-color:?\"+\n";
??????_sJavaScript+="?????????WebCalendar.btnBgColor?+\";cursor:?hand;?padding-top:?4px;?width:?100%;?height:?100%;?border:?0'?οnfοcus='this.blur()'\"+\n";
??????_sJavaScript+="?????????\"?type=button?value=' ? ?關閉'?onclick='parent.hiddenCalendar()'></td></tr></table>\"+\n";
??????_sJavaScript+="????\"</td></tr><tr><td?height=20?width=140?bgcolor='\"+?WebCalendar.lightColor?+\"'>\"+\n";
??????_sJavaScript+="????\"????<table?border=0?cellpadding=1?cellspacing=0?width=140>\"+\n";
??????_sJavaScript+="????\"????<tr><td><input?name=prevYear?title='向前翻?1?年快捷鍵:↑'?onclick='parent.prevY()'?type=button?value='<<'\"+\n";
??????_sJavaScript+="????\"????onfocus='this.blur()'?style='meizz:expression(this.disabled=parent.WebCalendar.thisYear==1000)'><input\"+\n";
??????_sJavaScript+="????\"????onfocus='this.blur()'?name=prevMonth?title='向前翻?1?月快捷鍵:←'?onclick='parent.prevM()'?type=button?value='< '>\"+\n";
??????_sJavaScript+="????\"????</td><td?align=center><input?name=today?type=button?value='今天'?onfocus='this.blur()'?style='width:?50'?title='當前日期快捷鍵:T'\"+\n";
???
??????_sJavaScript+="????\"????onclick="?+?@"\"?+?"\""?+?"parent.returnDate(new?Date().getDate()?+'/'+?(new?Date().getMonth()?+1)?+'/'+?new?Date().getFullYear())";
??????//?"????οnclick=??????\??????"?????parent.returnDate(new?Date().getDate()?+'/'+?(new?Date().getMonth()?+1)?+'/'+?new?Date().getFullYear())?
??????_sJavaScript+=@"\"?+?"\""?+?">"?+?"\"+\n";
??????//??\?????"??????>?????"?+
??????_sJavaScript+="????\"????</td><td?align=right><input?title='向后翻?1?月快捷鍵:→'?name=nextMonth?onclick='parent.nextM()'?type=button?value=' >'\"+\n";
??????_sJavaScript+="????\"????onfocus='this.blur()'><input?name=nextYear?title='向后翻?1?年快捷鍵:↓'?onclick='parent.nextY()'?type=button?value='>>'\"+\n";
??????_sJavaScript+="????\"????onfocus='this.blur()'?style='meizz:expression(this.disabled=parent.WebCalendar.thisYear==9999)'></td></tr></table>\"+\n";
??????_sJavaScript+="????\"</td></tr><table></form></body></html>\";\n";
??????_sJavaScript+="????with(WebCalendar.iframe)\n";
??????_sJavaScript+="????{\n";
??????_sJavaScript+="????????document.writeln(strIframe);?document.close();\n";
??????_sJavaScript+="????????for(var?i=0;?i<39;?i++)\n";
??????_sJavaScript+="????????{\n";
??????_sJavaScript+="????????????WebCalendar.dayObj[i]?=?eval(\"meizzDay\"+?i);\n";
??????_sJavaScript+="????????????WebCalendar.dayObj[i].onmouseover?=?dayMouseOver;\n";
??????_sJavaScript+="????????????WebCalendar.dayObj[i].onmouseout??=?dayMouseOut;\n";
??????_sJavaScript+="????????????WebCalendar.dayObj[i].onclick?????=?returnDate;\n";
??????_sJavaScript+="????????}\n";
??????_sJavaScript+="????}\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="function?WebCalendar()?//初始化日歷的設置\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????this.regInfo????=?\"請單擊選擇日期 關閉的快捷鍵:[Esc]\";\n";
??????_sJavaScript+="????this.regInfo???+=?\"Ver?1.0:FengXq?Email:Fpsky2000@163.com\";\n";
??????_sJavaScript+="????this.daysMonth??=?new?Array(31,?28,?31,?30,?31,?30,?31,?31,?30,?31,?30,?31);\n";
??????_sJavaScript+="????this.day????????=?new?Array(39);????????????//定義日歷展示用的數組\n";
??????_sJavaScript+="????this.dayObj?????=?new?Array(39);????????????//定義日期展示控件數組\n";
??????_sJavaScript+="????this.dateStyle??=?null;?????????????????????//保存格式化后日期數組\n";
??????_sJavaScript+="????this.objExport??=?null;?????????????????????//日歷回傳的顯示控件\n";
??????_sJavaScript+="????this.eventSrc???=?null;?????????????????????//日歷顯示的觸發控件\n";
??????_sJavaScript+="????this.inputDate??=?null;?????????????????????//轉化外的輸入的日期(d/m/yyyy)\n";
??????_sJavaScript+="????this.thisYear???=?new?Date().getFullYear();?//定義年的變量的初始值\n";
??????_sJavaScript+="????this.thisMonth??=?new?Date().getMonth()+?1;?//定義月的變量的初始值\n";
??????_sJavaScript+="????this.thisDay????=?new?Date().getDate();?????//定義日的變量的初始值\n";
??????_sJavaScript+="????this.today??????=?this.thisDay?+\"/\"+?this.thisMonth?+\"/\"+?this.thisYear;???//今天(d/m/yyyy)\n";
??????_sJavaScript+="????this.iframe?????=?window.frames(\"meizzCalendarIframe\");?//日歷的?iframe?載體\n";
??????_sJavaScript+="????this.calendar???=?getObjectById(\"meizzCalendarLayer\");??//日歷的層\n";
??????_sJavaScript+="????this.dateReg????=?\"\";???????????//日歷格式驗證的正則式\n";
??????_sJavaScript+="????this.yearFall???=?50;???????????//定義年下拉框的年差值\n";
??????_sJavaScript+="????this.format?????=?\"yyyy-mm-dd\";?//回傳日期的格式\n";
??????_sJavaScript+="????this.timeShow???=?false;????????//是否返回時間\n";
??????_sJavaScript+="????this.drag???????=?true;?????????//是否允許拖動\n";
??????_sJavaScript+="????this.darkColor??=?\"#97BAE2\";????//控件的暗色\n";
??????_sJavaScript+="????this.lightColor?=?\"#FFFFFF\";????//控件的亮色\n";
??????_sJavaScript+="????this.btnBgColor?=?\"#E6E6FA\";????//控件的按鈕背景色\n";
??????_sJavaScript+="????this.wordColor??=?\"#000080\";????//控件的文字顏色\n";
??????_sJavaScript+="????this.wordDark???=?\"#DCDCDC\";????//控件的暗文字顏色\n";
??????_sJavaScript+="????this.dayBgColor?=?\"#F5F5FA\";????//日期數字背景色\n";
??????_sJavaScript+="????this.todayColor?=?\"#FF0000\";????//今天在日歷上的標示背景色\n";
??????_sJavaScript+="????this.DarkBorder?=?\"#D4D0C8\";????//日期顯示的立體表達色\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="???var?WebCalendar?=?new?WebCalendar();\n";
??????_sJavaScript+="function?calendar()?//主調函數\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????var?e?=?window.event.srcElement;???writeIframe();\n";
??????_sJavaScript+="????var?o?=?WebCalendar.calendar.style;?WebCalendar.eventSrc?=?e;\n";
??????_sJavaScript+="?if?(arguments.length?==?0)?WebCalendar.objExport?=?e;\n";
??????_sJavaScript+="????else?WebCalendar.objExport?=?eval(arguments[0]);\n";
??????_sJavaScript+="????WebCalendar.iframe.tableWeek.style.cursor?=?WebCalendar.drag???\"move\"?:?\"default\";\n";
??????_sJavaScript+="?var?t?=?e.offsetTop,??h?=?e.clientHeight,?l?=?e.offsetLeft,?p?=?e.type;\n";
??????_sJavaScript+="?while?(e?=?e.offsetParent){t?+=?e.offsetTop;?l?+=?e.offsetLeft;}\n";
??????_sJavaScript+="????o.display?=?\"\";?WebCalendar.iframe.document.body.focus();\n";
??????_sJavaScript+="????var?cw?=?WebCalendar.calendar.clientWidth,?ch?=?WebCalendar.calendar.clientHeight;\n";
??????_sJavaScript+="????var?dw?=?document.body.clientWidth,?dl?=?document.body.scrollLeft,?dt?=?document.body.scrollTop;\n";
??????_sJavaScript+="????if?(document.body.clientHeight?+?dt?-?t?-?h?>=?ch)?o.top?=?(p==\"image\")??t?+?h?:?t?+?h?+?6;\n";
??????_sJavaScript+="????else?o.top??=?(t?-?dt?<?ch)???((p==\"image\")??t?+?h?:?t?+?h?+?6)?:?t?-?ch;\n";
??????_sJavaScript+="????if?(dw?+?dl?-?l?>=?cw)?o.left?=?l;?else?o.left?=?(dw?>=?cw)???dw?-?cw?+?dl?:?dl;\n";
???
??????_sJavaScript+=@"if??(!WebCalendar.timeShow)?WebCalendar.dateReg?=?/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;"?+?"\n";
??????//if??(!WebCalendar.timeShow)?WebCalendar.dateReg?=?/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
??????_sJavaScript+=@"else?WebCalendar.dateReg?=?/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})?(\d{1,2}):(\d{1,2}):(\d{1,2})$/;"?+?"\n";
??????//?else?WebCalendar.dateReg?=?/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})?(\d{1,2}):(\d{1,2}):(\d{1,2})$/;
??????_sJavaScript+="????try{\n";
??????_sJavaScript+="????????if?(WebCalendar.objExport.value.trim()?!=?\"\"){\n";????
??????_sJavaScript+="????????????WebCalendar.dateStyle?=?WebCalendar.objExport.value.trim().match(WebCalendar.dateReg);\n";
??????_sJavaScript+="????????????if?(WebCalendar.dateStyle?==?null)\n";
??????_sJavaScript+="????????????{\n";
??????_sJavaScript+="????????????????WebCalendar.thisYear???=?new?Date().getFullYear();\n";
??????_sJavaScript+="????????????????WebCalendar.thisMonth??=?new?Date().getMonth()+?1;\n";
??????_sJavaScript+="????????????????WebCalendar.thisDay????=?new?Date().getDate();\n";
??????_sJavaScript+="????????????????alert(\"原文本框里的日期有錯誤!可能與你定義的顯示時分秒有沖突!\");\n";
??????_sJavaScript+="????????????????writeCalendar();?return?false;\n";
??????_sJavaScript+="????????????}\n";
??????_sJavaScript+="????????????else\n";
??????_sJavaScript+="????????????{\n";
??????_sJavaScript+="????????????????WebCalendar.thisYear???=?parseInt(WebCalendar.dateStyle[1],?10);\n";
??????_sJavaScript+="????????????????WebCalendar.thisMonth??=?parseInt(WebCalendar.dateStyle[3],?10);\n";
??????_sJavaScript+="????????????????WebCalendar.thisDay????=?parseInt(WebCalendar.dateStyle[4],?10);\n";
??????_sJavaScript+="????????????????WebCalendar.inputDate??=?parseInt(WebCalendar.thisDay,?10)?+\"/\"+?parseInt(WebCalendar.thisMonth,?10)?+\"/\"+?\n";
??????_sJavaScript+="????????????????parseInt(WebCalendar.thisYear,?10);?writeCalendar();\n";
??????_sJavaScript+="????????????}\n";
??????_sJavaScript+="????????}??else?writeCalendar();\n";
??????_sJavaScript+="????}\n";
??????_sJavaScript+="??catch(e){writeCalendar();}\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="function?funMonthSelect()?//月份的下拉框\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????var?m?=?isNaN(parseInt(WebCalendar.thisMonth,?10))???new?Date().getMonth()?+?1?:?parseInt(WebCalendar.thisMonth);\n";
??????_sJavaScript+="????var?e?=?WebCalendar.iframe.document.forms[0].tmpMonthSelect;\n";
??????_sJavaScript+="????for?(var?i=1;?i<13;?i++)?e.options.add(new?Option(i?+\"月\",?i));\n";
??????_sJavaScript+="????e.style.display?=?\"\";?e.value?=?m;?e.focus();?window.status?=?e.style.top;\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="function?funYearSelect()?//年份的下拉框\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????var?n?=?WebCalendar.yearFall;\n";
??????_sJavaScript+="????var?e?=?WebCalendar.iframe.document.forms[0].tmpYearSelect;\n";
??????_sJavaScript+="????var?y?=?isNaN(parseInt(WebCalendar.thisYear,?10))???new?Date().getFullYear()?:?parseInt(WebCalendar.thisYear);\n";
??????_sJavaScript+="????????y?=?(y?<=?1000)??1000?:?((y?>=?9999)??9999?:?y);\n";
??????_sJavaScript+="????var?min?=?(y?-?n?>=?1000)???y?-?n?:?1000;\n";
??????_sJavaScript+="????var?max?=?(y?+?n?<=?9999)???y?+?n?:?9999;\n";
??????_sJavaScript+="????????min?=?(max?==?9999)???max-n*2?:?min;\n";
??????_sJavaScript+="????????max?=?(min?==?1000)???min+n*2?:?max;\n";
??????_sJavaScript+="????for?(var?i=min;?i<=max;?i++)?e.options.add(new?Option(i?+\"年\",?i));\n";
??????_sJavaScript+="????e.style.display?=?\"\";?e.value?=?y;?e.focus();\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="function?prevM()??//往前翻月份\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????WebCalendar.thisDay?=?1;\n";
??????_sJavaScript+="????if?(WebCalendar.thisMonth==1)\n";
??????_sJavaScript+="????{\n";
??????_sJavaScript+="????????WebCalendar.thisYear--;\n";
??????_sJavaScript+="????????WebCalendar.thisMonth=13;\n";
??????_sJavaScript+="????}\n";
??????_sJavaScript+="????WebCalendar.thisMonth--;?writeCalendar();\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="function?nextM()??//往后翻月份\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????WebCalendar.thisDay?=?1;\n";
??????_sJavaScript+="????if?(WebCalendar.thisMonth==12)\n";
??????_sJavaScript+="????{\n";
??????_sJavaScript+="????????WebCalendar.thisYear++;\n";
??????_sJavaScript+="????????WebCalendar.thisMonth=0;\n";
??????_sJavaScript+="????}\n";
??????_sJavaScript+="????WebCalendar.thisMonth++;?writeCalendar();\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="function?prevY(){WebCalendar.thisDay?=?1;?WebCalendar.thisYear--;?writeCalendar();}//往前翻?Year\n";
??????_sJavaScript+="function?nextY(){WebCalendar.thisDay?=?1;?WebCalendar.thisYear++;?writeCalendar();}//往后翻?Year\n";
??????_sJavaScript+="function?hiddenSelect(e){for(var?i=e.options.length;?i>-1;?i--)e.options.remove(i);?e.style.display=\"none\";}\n";
??????_sJavaScript+="function?getObjectById(id){?if(document.all)?return(eval(\"document.all.\"+?id));?return(eval(id));?}\n";
??????_sJavaScript+="function?hiddenCalendar(){getObjectById(\"meizzCalendarLayer\").style.display?=?\"none\";};\n";
??????_sJavaScript+="function?appendZero(n){return((\"00\"+?n).substr((\"00\"+?n).length-2));}//日期自動補零程序\n";
??????_sJavaScript+="function?String.prototype.trim()\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="?return?this.replace(/(^"?+?@"\"?+?"s*)|("?+?@"\"?+?"s*$)"?+?@"/"?+?"g,\"\");}\n";
??????//??????????????return?this.replace(/(^??????\?????s*)|(??????\?????s*$)??????/?????g,?"?");}
??????_sJavaScript+="function?dayMouseOver()\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????this.className?=?\"over\";\n";
??????_sJavaScript+="????this.style.backgroundColor?=?WebCalendar.darkColor;\n";
??????_sJavaScript+="????if(WebCalendar.day[this.id.substr(8)].split(\"/\")[1]?==?WebCalendar.thisMonth)\n";
??????_sJavaScript+="????this.style.color?=?WebCalendar.lightColor;\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="function?dayMouseOut()\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????this.className?=?\"out\";?var?d?=?WebCalendar.day[this.id.substr(8)],?a?=?d.split(\"/\");\n";
??????_sJavaScript+="????this.style.removeAttribute('backgroundColor');\n";
??????_sJavaScript+="????if(a[1]?==?WebCalendar.thisMonth?&&?d?!=?WebCalendar.today)\n";
??????_sJavaScript+="????{\n";
??????_sJavaScript+="????????if(WebCalendar.dateStyle?&&?a[0]?==?parseInt(WebCalendar.dateStyle[4],?10))\n";
??????_sJavaScript+="????????this.style.color?=?WebCalendar.lightColor;\n";
??????_sJavaScript+="????????this.style.color?=?WebCalendar.wordColor;\n";
??????_sJavaScript+="????}\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="function?writeCalendar()?//對日歷顯示的數據的處理程序\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????var?y?=?WebCalendar.thisYear;\n";
??????_sJavaScript+="????var?m?=?WebCalendar.thisMonth;?\n";
??????_sJavaScript+="????var?d?=?WebCalendar.thisDay;\n";
??????_sJavaScript+="????WebCalendar.daysMonth[1]?=?(0==y%4?&&?(y%100!=0?||?y%400==0))???29?:?28;\n";
??????_sJavaScript+="????if?(!(y<=9999?&&?y?>=?1000?&&?parseInt(m,?10)>0?&&?parseInt(m,?10)<13?&&?parseInt(d,?10)>0)){\n";
??????_sJavaScript+="????????alert(\"對不起,你輸入了錯誤的日期!\");\n";
??????_sJavaScript+="????????WebCalendar.thisYear???=?new?Date().getFullYear();\n";
??????_sJavaScript+="????????WebCalendar.thisMonth??=?new?Date().getMonth()+?1;\n";
??????_sJavaScript+="????????WebCalendar.thisDay????=?new?Date().getDate();?}\n";
??????_sJavaScript+="????y?=?WebCalendar.thisYear;\n";
??????_sJavaScript+="????m?=?WebCalendar.thisMonth;\n";
??????_sJavaScript+="????d?=?WebCalendar.thisDay;\n";
??????_sJavaScript+="????WebCalendar.iframe.meizzYearHead.innerText??=?y?+\"?年\";\n";
??????_sJavaScript+="????WebCalendar.iframe.meizzYearMonth.innerText?=?parseInt(m,?10)?+\"?月\";\n";
??????_sJavaScript+="????WebCalendar.daysMonth[1]?=?(0==y%4?&&?(y%100!=0?||?y%400==0))???29?:?28;?//閏年二月為29天\n";
??????_sJavaScript+="????var?w?=?new?Date(y,?m-1,?1).getDay();\n";
??????_sJavaScript+="????var?prevDays?=?m==1????WebCalendar.daysMonth[11]?:?WebCalendar.daysMonth[m-2];\n";
??????_sJavaScript+="????for(var?i=(w-1);?i>=0;?i--)?//這三個?for?循環為日歷賦數據源(數組?WebCalendar.day)格式是?d/m/yyyy\n";
??????_sJavaScript+="????{\n";
??????_sJavaScript+="????????WebCalendar.day[i]?=?prevDays?+\"/\"+?(parseInt(m,?10)-1)?+\"/\"+?y;\n";
??????_sJavaScript+="????????if(m==1)?WebCalendar.day[i]?=?prevDays?+\"/\"+?12?+\"/\"+?(parseInt(y,?10)-1);\n";
??????_sJavaScript+="????????prevDays--;\n";
??????_sJavaScript+="????}\n";
??????_sJavaScript+="????for(var?i=1;?i<=WebCalendar.daysMonth[m-1];?i++)?WebCalendar.day[i+w-1]?=?i?+\"/\"+?m?+\"/\"+?y;\n";
??????_sJavaScript+="????for(var?i=1;?i<39-w-WebCalendar.daysMonth[m-1]+1;?i++)\n";
??????_sJavaScript+="????{\n";
??????_sJavaScript+="????????WebCalendar.day[WebCalendar.daysMonth[m-1]+w-1+i]?=?i?+\"/\"+?(parseInt(m,?10)+1)?+\"/\"+?y;\n";
??????_sJavaScript+="????????if(m==12)?WebCalendar.day[WebCalendar.daysMonth[m-1]+w-1+i]?=?i?+\"/\"+?1?+\"/\"+?(parseInt(y,?10)+1);\n";
??????_sJavaScript+="????}\n";
??????_sJavaScript+="????for(var?i=0;?i<39;?i++)????//這個循環是根據源數組寫到日歷里顯示\n";
??????_sJavaScript+="????{\n";
??????_sJavaScript+="????????var?a?=?WebCalendar.day[i].split(\"/\");\n";
??????_sJavaScript+="????????WebCalendar.dayObj[i].innerText????=?a[0];\n";
??????_sJavaScript+="????????WebCalendar.dayObj[i].title????????=?a[2]?+\"-\"+?appendZero(a[1])?+\"-\"+?appendZero(a[0]);\n";
??????_sJavaScript+="????????WebCalendar.dayObj[i].bgColor??????=?WebCalendar.dayBgColor;\n";
??????_sJavaScript+="????????WebCalendar.dayObj[i].style.color??=?WebCalendar.wordColor;\n";
??????_sJavaScript+="????????if?((i<10?&&?parseInt(WebCalendar.day[i],?10)>20)?||?(i>27?&&?parseInt(WebCalendar.day[i],?10)<12))\n";
??????_sJavaScript+="????????????WebCalendar.dayObj[i].style.color?=?WebCalendar.wordDark;\n";
??????_sJavaScript+="????????if?(WebCalendar.inputDate==WebCalendar.day[i])????//設置輸入框里的日期在日歷上的顏色\n";
??????_sJavaScript+="????????{WebCalendar.dayObj[i].bgColor?=?WebCalendar.darkColor;?WebCalendar.dayObj[i].style.color?=?WebCalendar.lightColor;}\n";
??????_sJavaScript+="????????if?(WebCalendar.day[i]?==?WebCalendar.today)??????//設置今天在日歷上反應出來的顏色\n";
??????_sJavaScript+="????????{WebCalendar.dayObj[i].bgColor?=?WebCalendar.todayColor;?WebCalendar.dayObj[i].style.color?=?WebCalendar.lightColor;}\n";
??????_sJavaScript+="????}\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="function?returnDate()?//根據日期格式等返回用戶選定的日期\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????if(WebCalendar.objExport)\n";
??????_sJavaScript+="????{\n";
??????_sJavaScript+="????????var?returnValue;\n";
??????_sJavaScript+="????????var?a?=?(arguments.length==0)???WebCalendar.day[this.id.substr(8)].split(\"/\")?:?arguments[0].split(\"/\");\n";
??????_sJavaScript+="????????var?d?=?WebCalendar.format.match(/^("?+?@"\"?+"w{4})(-|"+?@"\"?+?"/)("+?@"\"?+?"w{1,2})"+?@"\"?+?"2("+?@"\"+"w{1,2})$/);\n";
??????//?????????????????????var?d?=?WebCalendar.format.match(/^(??????\????w{4})(-|?????\?????/)(?????\?????w{1,2})?????\?????2(?????\???w{1,2})$/);
??????_sJavaScript+="????????if(d==null){alert(\"你設定的日期輸出格式不對!請重新定義?WebCalendar.format?!\");?return?false;}\n";
??????_sJavaScript+="????????var?flag?=?d[3].length==2?||?d[4].length==2;?//判斷返回的日期格式是否要補零\n";
??????_sJavaScript+="????????returnValue?=?flag???a[2]?+d[2]+?appendZero(a[1])?+d[2]+?appendZero(a[0])?:?a[2]?+d[2]+?a[1]?+d[2]+?a[0];\n";
??????_sJavaScript+="????????if(WebCalendar.timeShow)\n";
??????_sJavaScript+="????????{\n";
??????_sJavaScript+="????????????var?h?=?new?Date().getHours(),?m?=?new?Date().getMinutes(),?s?=?new?Date().getSeconds();\n";
??????_sJavaScript+="????????????returnValue?+=?flag???\"?\"+?appendZero(h)?+\":\"+?appendZero(m)?+\":\"+?appendZero(s)?:?\"?\"+??h??+\":\"+?m?+\":\"+?s;\n";
??????_sJavaScript+="????????}\n";
??????_sJavaScript+="????????WebCalendar.objExport.value?=?returnValue;\n";
??????_sJavaScript+="????????hiddenCalendar();\n";
??????_sJavaScript+="????}\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="function?document.onclick()\n";
??????_sJavaScript+="{\n";
??????_sJavaScript+="????if(WebCalendar.eventSrc?!=?window.event.srcElement)?hiddenCalendar();\n";
??????_sJavaScript+="}\n";
??????_sJavaScript+="-->\n";
??????_sJavaScript+="</script>\n";
??????_sJavaScript+="\n";
????}
????#endregion
????override_Function#region?override_Function
????/**////?<summary>
????///?重寫函數,處理控件的回發事件
????///?</summary>
????public?virtual?bool?LoadPostData(string?postDataKey,NameValueCollection?values)?
????{
??????String?presentValue?=?_Text;
??????String?postedValue?=?values[postDataKey];
??????if?(!presentValue.Equals(postedValue))
??????{
????????_Text?=?postedValue;
????????return?true;
??????}
??????return?false;
????}
????public?virtual?void?RaisePostDataChangedEvent()?
????{
????????
????}
????/**////?<summary>
????///?重寫OnPreRender(),對控件進行初始化設置
????///?</summary>
????protected?override?void?OnPreRender(EventArgs?e)
????{
??????//設置默認日期:當前日期
??????if?(_DefaultDate==true)
??????{
????????//_Text?=?System.DateTime.Now.Year.ToString()?+?"-"?+?System.DateTime.Now.Month.ToString()?+?"-"?+?System.DateTime.Now.Day.ToString();
????????_Text=System.DateTime.Now.Date.ToString("yyyy-MM-dd");
???
??????}
????}
????/**////?<summary>
????///?重寫Render函數,用Html代碼輸出控件
????///?</summary>
????protected?override?void?Render(?HtmlTextWriter?writer)
????{
??????string?_strTextBoxClass="";
??????string?_strButtonClass="";
??????//生成輸出Html控件代碼
??????_sOutput_Html?="";
??????_sOutput_Html?+=?"\n";
??????//設置樣式
??????if(_TextBoxClass!="")
??????{
????????_strTextBoxClass?=?"?class?=?'"?+?_TextBoxClass?+?"'?";
??????}
??????if(_ButtonClass!="")
??????{
????????_strButtonClass?=?"?class?=?'"?+?_ButtonClass?+?"'?";
??????}
??????_sOutput_Html?+=?"<input?type='text'?name='"?+?this.UniqueID?+?"'?size='7'?"?+?_strTextBoxClass?+?"?value='"?+?_Text?+?"'?runat='server'?>\n";???
??????_sOutput_Html?+=?"<input??"?+?_strButtonClass?+?"?type=button?value=''?οnclick='calendar("?+?this.UniqueID?+?")'>\n";
??????//生成JavaScript腳本
??????//判斷JavaScript腳本是否已經在客戶端注冊,
??????if?(Page.IsClientScriptBlockRegistered(_sJavaScript_ID))
??????{
????????//已注冊,不重復輸出角本到客戶端
??????}
??????else
??????{
????????_MakeJavaScript();
????????_sOutput_Html?+=?_sJavaScript;???
??????}
??????//在客戶端注冊JavaScript腳本
??????Page.RegisterClientScriptBlock(_sJavaScript_ID,_sJavaScript);
??????writer.Write(_sOutput_Html);
????}
????#endregion
??}
}
轉載于:https://www.cnblogs.com/Titans/archive/2006/09/15/504892.html
總結
以上是生活随笔為你收集整理的日历控件源码开放--适用于ASP.NET 1.1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: asp.net 2.0 TreeView
- 下一篇: 如何测试机房的速度和带宽?