清清月儿 .NET万花筒 Asp.net技术 Asp.net教程 Asp.net源码 Asp.net基础 Asp.net控件 Asp.net入门

凡事由其自然,遇了处之泰然,得意之时淡然,失意之时坦然,艰辛曲折必然,历尽沧桑悟然。

黄鸣ID:21aspnet
1804948次访问,排名5好友0人,关注者124
21aspnet的文章
原创 958 篇
翻译 9 篇
转载 21 篇
评论 1070 篇
清清月儿的公告
最近评论
SYC_SC:太好了啊,谢谢
AtomBomb1989:长见识了……
helingling_67:写的很棒,希望楼主在有的关键的地方可以写下注释!谢谢!
goalsunboy:真是好东西,收藏先。谢谢楼主
Tears_In_Heaven:学习中!谢谢
文章分类
收藏
    相册
    图片库
    图片库2
    .NET 工具
    C# to VB.NET Translator
    Fiddler
    FxCop代码标准检测工具
    httpwatch
    Memcached
    Multiple IE
    Nunit单元测试
    VB.NET and C# Comparison
    VB.NET 代码转为C#
    网站国际排名查询工具
    .NET 下载/讲座视频
    chinaitlab
    Visual Studio 2005 的工具
    wrox出版社书刊代码下载
    中国台湾微软MSDN
    中文MSDN WebCast网络广播全部下载列表
    源码之家
    .NET 优秀Blog
    cuike519的专栏
    dahuzizyd的专栏
    DotNet技术交流乐园
    DotNet男孩社区
    dudu
    gztoby
    Kemin's booootLog
    kimyoo(RSS)
    MSDN每日追踪
    Nios.Org
    Think Different and Think More
    Visual Studio.net专栏
    中国DotNet俱乐部
    体验ASP.NET 2.0新特性
    天轰穿
    孟宪会之精彩世界之.NET开发者园地
    宝玉
    开心就好【博客堂】
    思归呓语
    木子 [I am praying]
    李会军
    李洪根【VB】
    永春阁
    汉飞扬【Vista】
    涂曙光【SharePoint】
    维生素C.net
    网际浪子专栏(曾用名littlehb)
    葛涵涛
    蓝丽网VML教学网
    蝈蝈俊.net[csdn版]
    蝈蝈俊.net[joycode版]
    谭振林
    邹建
    阿不
    阿良.NET
    雨痕
    鸟食轩(RSS)
    .NET 优秀网站
    .NET 官方网www.asp.net
    .NET开发资源精华收【不得不看】
    ASP .NET FAQ
    asp101
    aspfree
    C#开源资源
    C#开源资源大全
    C#语言在线帮助网站
    codeproject
    infragistics
    iwebsms
    MSDN中文
    Scott Guthrie(ASP.NET之父)
    SharePoint爱好者
    Wintellect
    www.411asp.net
    世界上最大的Open Source项目在线网站
    官方ASP.NET入门教程
    微软官方.NET指导站点
    最好的索引网站
    正则
    邮件发送常见问题解决方法
    Ajax链接
    AJAX载入等待图片在线生成
    bindows(RSS)
    DHTML menu4作者主页(RSS)
    EXT类库
    Yahoo YUI
    大量DHTML代码
    无忧脚本 - JavaScript
    索漫
    综合开发技术网
    5D
    CSDN
    W3C技术在中国
    中国BS网
    中文C#技术站
    天新网
    天极网开发频道
    太平洋电脑网web开发
    看雪
    统一教学网
    网人帝国
    网页设计师:web标准教程及推广,网站重构
    蓝色理想
    豆豆技术网
    赛迪网
    闪客帝国
    雅趣技术网
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 asp.net千奇百怪的日历【月儿原创】 收藏

    新一篇: asp.net2.0学习历程 菜鸟到中级程序员的飞跃【月儿原创】

    asp.net千奇百怪的日历

    作者:清清月儿

    主页:http://blog.csdn.net/21aspnet/           时间:2007.5.14

    日历控件是我们经常使用的,本文把常用的几款日历总结如下。 

    1.下拉日历梅花雨版第1款
    点评:
    最经典的几乎完美了。

    代码:

    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>


    <html  >
    <head runat="server">
        
    <title>日历控件</title>
    <script type="text/javascript" src="calendar.js"></script>
    </head>
    <body>
        
    <form id="form1" runat="server">
        
    <div>
            
            
    <input id="Text1" type="text"  onFocus=calendar() />
           
    </div>
        
    </form>
    </body>
    </html>


    <!--
    document.write(
    "<div id=meizzCalendarLayer style='position: absolute; z-index: 9999; width: 144; height: 193; display: none'>");
    document.write(
    "<iframe name=meizzCalendarIframe scrolling=no frameborder=0 width=100% height=100%></iframe></div>");
    function writeIframe()
    {
        
    var strIframe = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=gb2312'><style>"+
        
    "*{font-size: 12px; font-family: 宋体}"+
        
    ".bg{  color: "+ WebCalendar.lightColor +"; cursor: default; background-color: "+ WebCalendar.darkColor +";}"+
        
    "table#tableMain{ width: 142; height: 180;}"+
        
    "table#tableWeek td{ color: "+ WebCalendar.lightColor +";}"+
        
    "table#tableDay  td{ font-weight: bold;}"+
        
    "td#meizzYearHead, td#meizzYearMonth{color: "+ parent.WebCalendar.wordColor +"}"+
        
    ".out { text-align: center; border-top: 1px solid "+ WebCalendar.DarkBorder +"; border-left: 1px solid "+ WebCalendar.DarkBorder +";"+
        
    "border-right: 1px solid "+ WebCalendar.lightColor +"; border-bottom: 1px solid "+ WebCalendar.lightColor +";}"+
        
    ".over{ text-align: center; border-top: 1px solid #FFFFFF; border-left: 1px solid #FFFFFF;"+
        
    "border-bottom: 1px solid "+ WebCalendar.DarkBorder +"; border-right: 1px solid "+ WebCalendar.DarkBorder +"}"+
        
    "input{ border: 1px solid "+ WebCalendar.darkColor +"; padding-top: 1px; height: 18; cursor: hand;"+
        
    "       color:"+ WebCalendar.wordColor +"; background-color: "+ WebCalendar.btnBgColor +"}"+
        
    "</style></head><body onselectstart='return false' style='margin: 0px' oncontextmenu='return false'><form name=meizz>";
        
    if (WebCalendar.drag){ strIframe += "<scr"+"ipt language=javascript>"+
        
    "var drag=false, cx=0, cy=0, o = parent.WebCalendar.calendar; function document.onmousemove(){"+
        
    "if(parent.WebCalendar.drag && drag){if(o.style.left=='')o.style.left=0; if(o.style.top=='')o.style.top=0;"+
        
    "o.style.left = parseInt(o.style.left) + window.event.clientX-cx;"+
        
    "o.style.top  = parseInt(o.style.top)  + window.event.clientY-cy;}}"+
        
    "function document.onkeydown(){ switch(window.event.keyCode){  case 27 : parent.hiddenCalendar(); break;"+
        
    "case 37 : parent.prevM(); break; case 38 : parent.prevY(); break; case 39 : parent.nextM(); break; case 40 : parent.nextY(); break;"+
        
    "case 84 : document.forms[0].today.click(); break;} window.event.keyCode = 0; window.event.returnValue= false;}"+
        
    "function dragStart(){cx=window.event.clientX; cy=window.event.clientY; drag=true;}</scr"+"ipt>"}

        strIframe 
    += "<select name=tmpYearSelect  onblur='parent.hiddenSelect(this)' style='z-index:1;position:absolute;top:3;left:18;display:none'"+
        
    " onchange='parent.WebCalendar.thisYear =this.value; parent.hiddenSelect(this); parent.writeCalendar();'></select>"+
        
    "<select name=tmpMonthSelect onblur='parent.hiddenSelect(this)' style='z-index:1; position:absolute;top:3;left:74;display:none'"+
        
    " onchange='parent.WebCalendar.thisMonth=this.value; parent.hiddenSelect(this); parent.writeCalendar();'></select>"+
        
    "<table id=tableMain class=bg border=0 cellspacing=2 cellpadding=0>"+
        
    "<tr><td width=140 height=19 bgcolor='"+ WebCalendar.lightColor +"'>"+
        
    "    <table width=140 id=tableHead border=0 cellspacing=1 cellpadding=0><tr align=center>"+
        
    "    <td width=15 height=19 class=bg title='向前翻 1 月&#13;快捷键:←' style='cursor: hand' onclick='parent.prevM()'><b>&lt;</b></td>"+
        
    "    <td width=60 id=meizzYearHead  title='点击此处选择年份' onclick='parent.funYearSelect(parseInt(this.innerText, 10))'"+
        
    "        onmouseover='this.bgColor=parent.WebCalendar.darkColor; this.style.color=parent.WebCalendar.lightColor'"+
        
    "        onmouseout='this.bgColor=parent.WebCalendar.lightColor; this.style.color=parent.WebCalendar.wordColor'></td>"+
        
    "    <td width=50 id=meizzYearMonth title='点击此处选择月份' onclick='parent.funMonthSelect(parseInt(this.innerText, 10))'"+
        
    "        onmouseover='this.bgColor=parent.WebCalendar.darkColor; this.style.color=parent.WebCalendar.lightColor'"+
        
    "        onmouseout='this.bgColor=parent.WebCalendar.lightColor; this.style.color=parent.WebCalendar.wordColor'></td>"+
        
    "    <td width=15 class=bg title='向后翻 1 月&#13;快捷键:→' onclick='parent.nextM()' style='cursor: hand'><b>&gt;</b></td></tr></table>"+
        
    "</td></tr><tr><td height=20><table id=tableWeek border=1 width=140 cellpadding=0 cellspacing=0 ";
        
    if(WebCalendar.drag){strIframe += "onmousedown='dragStart()' onmouseup='drag=false' onmouseout='drag=false'";}
        strIframe 
    += " borderColorLight='"+ WebCalendar.darkColor +"' borderColorDark='"+ WebCalendar.lightColor +"'>"+
        
    "    <tr align=center><td height=20>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr></table>"+
        
    "</td></tr><tr><td valign=top width=140 bgcolor='"+ WebCalendar.lightColor +"'>"+
        
    "    <table id=tableDay height=120 width=140 border=0 cellspacing=1 cellpadding=0>";
             
    for(var x=0; x<5; x++){ strIframe += "<tr>";
             
    for(var y=0; y<7; y++)  strIframe += "<td class=out id='meizzDay"+ (x*7+y) +"'></td>"; strIframe += "</tr>";}

             strIframe 
    += "<tr>";
             
    for(var x=35; x<39; x++) strIframe += "<td class=out id='meizzDay"+ x +"'></td>";
             strIframe 
    +="<td colspan=3 class=out title='"+ WebCalendar.regInfo +"'><input style=' background-color: "+
             WebCalendar.btnBgColor 
    +";cursor: hand; padding-top: 4px; width: 100%; height: 100%; border: 0' onfocus='this.blur()'"+
             
    " type=button value='&nbsp; &nbsp; 关闭' onclick='parent.hiddenCalendar()'></td></tr></table>"+
        
    "</td></tr><tr><td height=20 width=140 bgcolor='"+ WebCalendar.lightColor +"'>"+
        
    "    <table border=0 cellpadding=1 cellspacing=0 width=140>"+
        
    "    <tr><td><input name=prevYear title='向前翻 1 年&#13;快捷键:↑' onclick='parent.prevY()' type=button value='&lt;&lt;'"+
        
    "    onfocus='this.blur()' style='meizz:expression(this.disabled=parent.WebCalendar.thisYear==1000)'><input"+
        
    "    onfocus='this.blur()' name=prevMonth title='向前翻 1 月&#13;快捷键:←' onclick='parent.prevM()' type=button value='&lt;&nbsp;'>"+
        
    "    </td><td align=center><input name=today type=button value='Today' onfocus='this.blur()' style='width: 50' title='当前日期&#13;快捷键:T'"+
        
    "    onclick="parent.returnDate(new Date().getDate() +'/'+ (new Date().getMonth() +1) +'/'+ new Date().getFullYear())">"+
        
    "    </td><td align=right><input title='向后翻 1 月&#13;快捷键:→' name=nextMonth onclick='parent.nextM()' type=button value='&nbsp;&gt;'"+
        
    "    onfocus='this.blur()'><input name=nextYear title='向后翻 1 年&#13;快捷键:↓' onclick='parent.nextY()' type=button value='&gt;&gt;'"+
        
    "    onfocus='this.blur()' style='meizz:expression(this.disabled=parent.WebCalendar.thisYear==9999)'></td></tr></table>"+
        
    "</td></tr><table></form></body></html>";
        
    with(WebCalendar.iframe)
        
    {
            document.writeln(strIframe); document.close();
            
    for(var i=0; i<39; i++)
            
    {
                WebCalendar.dayObj[i] 
    = eval("meizzDay"+ i);
                WebCalendar.dayObj[i].onmouseover 
    = dayMouseOver;
                WebCalendar.dayObj[i].onmouseout  
    = dayMouseOut;
                WebCalendar.dayObj[i].onclick     
    = returnDate;
            }

        }

    }

    function WebCalendar() //初始化日历的设置
    {
        
    this.regInfo    = "关闭的快捷键:[Esc]";
        
    this.daysMonth  = new Array(312831303130313130313031);
        
    this.day        = new Array(39);            //定义日历展示用的数组
        this.dayObj     = new Array(39);            //定义日期展示控件数组
        this.dateStyle  = null;                     //保存格式化后日期数组
        this.objExport  = null;                     //日历回传的显示控件

        
    this.eventSrc   = null;                     //日历显示的触发控件

        
    this.inputDate  = null;                     //转化外的输入的日期(d/m/yyyy)
        this.thisYear   = new Date().getFullYear(); //定义年的变量的初始值

        
    this.thisMonth  = new Date().getMonth()+ 1//定义月的变量的初始值

        
    this.thisDay    = new Date().getDate();     //定义日的变量的初始值

        
    this.today      = this.thisDay +"/"+ this.thisMonth +"/"+ this.thisYear;   //今天(d/m/yyyy)
        this.iframe     = window.frames("meizzCalendarIframe"); //日历的 iframe 载体
        this.calendar   = getObjectById("meizzCalendarLayer");  //日历的层
        this.dateReg    = "";           //日历格式验证的正则式
        this.yearFall   = 50;           //定义年下拉框的年差值

        
    this.format     = "yyyy-mm-dd"//回传日期的格式

        
    this.timeShow   = false;        //是否返回时间
        this.drag       = true;         //是否允许拖动
        this.darkColor  = "#0000D0";    //控件的暗色

        
    this.lightColor = "#FFFFFF";    //控件的亮色

        
    this.btnBgColor = "#E6E6FA";    //控件的按钮背景色
        this.wordColor  = "#000080";    //控件的文字颜色

        
    this.wordDark   = "#DCDCDC";    //控件的暗文字颜色
        this.dayBgColor = "#F5F5FA";    //日期数字背景色

        
    this.todayColor = "#FF0000";    //今天在日历上的标示背景色
        this.DarkBorder = "#D4D0C8";    //日期显示的立体表达色
    }
       var WebCalendar = new WebCalendar();
    function calendar() //主调函数
    {
        
    var e = window.event.srcElement;   writeIframe();
        
    var o = WebCalendar.calendar.style; WebCalendar.eventSrc = e;
     
    if (arguments.length == 0) WebCalendar.objExport = e;
        
    else WebCalendar.objExport = eval(arguments[0]);
        WebCalendar.iframe.tableWeek.style.cursor 
    = WebCalendar.drag ? "move" : "default";
     
    var t = e.offsetTop,  h = e.clientHeight, l = e.offsetLeft, p = e.type;
     
    while (e = e.offsetParent){t += e.offsetTop; l += e.offsetLeft;}
        o.display 
    = ""; WebCalendar.iframe.document.body.focus();
        
    var cw = WebCalendar.calendar.clientWidth, ch = WebCalendar.calendar.clientHeight;
        
    var dw = document.body.clientWidth, dl = document.body.scrollLeft, dt = document.body.scrollTop;
        
        
    if (document.body.clientHeight + dt - t - h >= ch) o.top = (p=="image")? t + h : t + h + 6;
        
    else o.top  = (t - dt < ch) ? ((p=="image")? t + h : t + h + 6) : t - ch;
        
    if (dw + dl - l >= cw) o.left = l; else o.left = (dw >= cw) ? dw - cw + dl : dl;