当鼠标在TextBox中一点时,出来一个日历,在日历选择一个日期后,这个日期显示在TextBox中

解决方案 »

  1.   

    你说的这是一个用js实现的时间控件!一般都是在网上用封装好的Dll的!
      你到网上找找。。很多!!
      

  2.   

    不是吧~~
    用DateTimePicker这个dll,网上找一个,引用下,然后在工具箱里面添加一下,就有这个控件啦~
    控件值的获取方式为DateTimePicker1.SelectedDate.Date.ToString("yy-MM-dd")
      

  3.   

    以前用asp时,有个js日期控件,然后onfocus=“” 就可以实现的,
    现在开始学.net,不知道怎么弄的
      

  4.   

    http://www.cnblogs.com/SunnyZhao/articles/292378.html
      

  5.   

    (1)先把日历控件隐藏起来.
    (2)做一个漂亮的日历图标。放在textbox的右边。
    (3)点击小图标的时候调用js代码,使日历控件可见。
    (4)实现日历控件的selectionChanged事件,
         {
            this.textBox1.Text = this.Calendar1.SelectedDate.ToString("d");
         }
      

  6.   

    “onfocus”属性不是TextBox的标准属性,但可以通过this.TextBox1.Attributes.Add();Add函数接受参数。
      

  7.   

    去网上下个js时间控件都是封装好了的dll
      

  8.   

    大家,因为我刚接触.net,所以大家觉得容易的,我都不知道怎么下手好的
      

  9.   

    这个问题还忘记说是一 个页面有这TextBox要实现这样的功能
      

  10.   


    textBox是没有这个属性的,但是textBox在服务器端解析后会变成 input
    input有onFocus这个属性的,因此,直接写上就起作用了,
    LZ可以试下!
      

  11.   

    TextBox1.Attributes.Add("onclick", "JS函数");
      

  12.   

    在asp.net中一样,你还用原来的就行,还用input控件,只是在其中加上runat="server",这样你在后台CS文件里就可以把它当成服务器控件来使用了。在这里加上onclick=""你的方法就行了。
      

  13.   

    (1)先把日历控件隐藏起来. 
    (2)做一个漂亮的日历图标。放在textbox的右边。 
    (3)点击小图标的时候调用js代码,使日历控件可见。 
    (4)实现日历控件的selectionChanged事件, 
        { 
            this.textBox1.Text = this.Calendar1.SelectedDate.ToString("d"); 
        }
      

  14.   

    PopUpCalendar.js
    //日历
    var date_start,date_end,g_object
    var today = new Date();
    var separator="-";
    var inover=false;//mode :时间变换的类型0-年 1-月 2-直接选择月
    function change_date(temp,mode)
    {
    var t_month,t_year
        if (mode){
            if(mode==1)
            t_month=parseInt(cele_date_month.value,10)+parseInt(temp,10);
            else
            t_month=parseInt(temp)
            if (t_month<cele_date_month.options(0).text) {
                cele_date_month.value=cele_date_month.options(cele_date_month.length-1).text;
                change_date(parseInt(cele_date_year.value,10)-1,0);
                }
            else{
                if (t_month>cele_date_month.options(cele_date_month.length-1).text){
                    cele_date_month.value=cele_date_month.options(0).text;
                    change_date(parseInt(cele_date_year.value,10)+1,0);
                    }            
                else
                    {cele_date_month.value=t_month;
                     set_cele_date(cele_date_year.value,cele_date_month.value);                
                    }
            }
        }  
        else{
            t_year=parseInt(temp,10);
            
            if (t_year<cele_date_year.options(0).text) {
                cele_date_year.value=cele_date_year.options(0).text;
                set_cele_date(cele_date_year.value,1);                
                }
            else{
                if (parseInt(t_year,10)>parseInt(cele_date_year.options(cele_date_year.length-1).text,10)){
                    cele_date_year.value=cele_date_year.options(cele_date_year.length-1).text;
                    set_cele_date(cele_date_year.value,12);                
                    }            
                else
                    {cele_date_year.value=t_year;
                     set_cele_date(cele_date_year.value,cele_date_month.value);                
                    }
            }
        }
        /*********2002-02-01 MODIFY BY WING **************/
        window.cele_date.focus();
        /****************MODIFY END***********************/
    }//初始化日历
    function init(d_start,d_end)
    {
         var temp_str;
         var i=0
         var j=0
         date_start=new Date(1980,7,1)
         date_end=new Date(2004,8,1)
         document.writeln("<div name=\"cele_date\" id=\"cele_date\"  style=\"display:none\"    style=\"LEFT: 69px; POSITION: absolute; TOP: 159px;Z-INDEX:99\" onClick=\"event.cancelBubble=true;\" onBlur=\"hilayer()\" onMouseout=\"lostlayerfocus()\">-</div>");
         window.cele_date.innerHTML="";
     temp_str="<table cellPadding=0 cellSpacing=1 border=\"0\" bgcolor=\"black\"><tr><td>"
         temp_str+="<table cellPadding=0 cellSpacing=1 border=\"0\" bgcolor=\"#FFFFFF\" bordercolor=\"black\"><tr><td height=20 align=center bgcolor=#8492B5 colspan=7 onmouseover=\"overcolor(this)\">";
         temp_str+="<input type=\"Button\" style=\"font-size: 9pt; font-family:Webdings;border: 0px #666666 outset; background-color: #8492B5\" value=\"9\" onclick=\"change_date(-1,1)\" onmouseover=\"getlayerfocus()\" style=\"color: #000099; background-color: #BFBFBF; cursor: hand\"> ";     temp_str+=""
         temp_str+="<select name=\"cele_date_year\" id=\"cele_date_year\" language=\"javascript\" onchange=\"change_date(this.value,0)\" onmouseover=\"getlayerfocus()\" onblur=\"getlayerfocus()\" style=\"font-size: 9pt; border: 1px #666666 outset; background-color: #F4F8FB\">"     for (i=1900;i<=2050;i++)
         {
          temp_str+="<OPTION value=\""+i.toString()+"\">"+i.toString()+"</OPTION>";
         }
         temp_str+="</select><font size=2><strong>年</strong></font> ";
         temp_str+=""
         temp_str+="<select name=\"cele_date_month\" id=\"cele_date_month\" language=\"javascript\" onchange=\"change_date(this.value,2)\" onmouseover=\"getlayerfocus()\" onblur=\"getlayerfocus()\" style=\"font-size: 9pt; border: 1px #666666 outset; background-color: #F4F8FB\">"     for (i=1;i<=12;i++)
         {
          temp_str+="<OPTION value=\""+i.toString()+"\">"+i.toString()+"</OPTION>";
         }
         temp_str+="</select><font size=2><strong>月</strong></font> ";
         temp_str+=""
         temp_str+="<input type=\"Button\" style=\"font-size: 9pt;font-family:Webdings;border: 0px #666666 outset; background-color: #8492B5\" value=\":\" onclick=\"change_date(1,1)\" onmouseover=\"getlayerfocus()\"  style=\"color: #000099; background-color: #BFBFBF; cursor: hand\">";     temp_str+="</td></tr><tr bgcolor=#8496A5 height=22><td onmouseover=\"overcolor(this)\">"
         temp_str+="<font color=red size=2 face=楷体_GB2312><strong>日</strong></font></td><td>";temp_str+="<font size=2 color=#000000 face=楷体_GB2312><strong>一</strong></font></td><td>"; temp_str+="<font size=2 color=#000000 face=楷体_GB2312><strong>二</strong></font></td><td>"; temp_str+="<font size=2 color=#000000 face=楷体_GB2312><strong>三</strong></font></td><td>"
         temp_str+="<font size=2 color=#000000 face=楷体_GB2312>四</font></td><td>";temp_str+="<font size=2 color=#000000 face=楷体_GB2312><strong>五</strong></font></td><td>"; temp_str+="<font size=2 color=#000000 face=楷体_GB2312><strong>六</strong></font></td></tr>";
         for (i=1 ;i<=6 ;i++)
         {
         temp_str+="<tr>";
            for(j=1;j<=7;j++){
                temp_str+="<td name=\"c"+i+"_"+j+"\"id=\"c"+i+"_"+j+"\" style=\"CURSOR: hand\" width=28 height=22 style=\"COLOR:#000000\" language=\"javascript\" onmouseover=\"overcolor(this)\" onmouseout=\"outcolor(this)\" onclick=\"td_click(this)\">?</td>"
                }
         temp_str+="</tr>"        
         }
         temp_str+="</td></tr></table>";
     temp_str+="</td></tr></table>";
         window.cele_date.innerHTML=temp_str;
    }
    function set_cele_date(year,month)
    {
       var i,j,p,k
       var nd=new Date(year,month-1,1);
       event.cancelBubble=true;
       cele_date_year.value=year;
       cele_date_month.value=month;   
       k=nd.getDay()-1
       var temp;
       for (i=1;i<=6;i++)
          for(j=1;j<=7;j++)
          {
          eval("c"+i+"_"+j+".innerHTML=\"\"");
      //日期单元格背景色
          eval("c"+i+"_"+j+".bgColor=\"#F7E7A5\"");
          eval("c"+i+"_"+j+".style.cursor=\"hand\"");
          }
       while(month-1==nd.getMonth())
        { j=(nd.getDay() +1);
          p=parseInt((nd.getDate()+k) / 7)+1;
          eval("c"+p+"_"+j+".innerHTML="+"\""+nd.getDate()+"\"");
          //如果是今天则,便颜色
      if ((nd.getDate()==today.getDate())&&(cele_date_month.value==today.getMonth()+1)&&(cele_date_year.value==today.getYear())){
            eval("c"+p+"_"+j+".bgColor=\"#FFD773\"");
          }
      //如果不是今天,则
          if (nd>date_end || nd<date_start)
          {
          eval("c"+p+"_"+j+".bgColor=\"#FF9999\"");
          eval("c"+p+"_"+j+".style.cursor=\"text\"");
          }
          nd=new Date(nd.valueOf() + 86400000)
        }
    }//s_object:点击的对象;d_start-d_end有效的时间区段;需要存放值的控件;
    function show_cele_date(eP,d_start,d_end,t_object)
    {
    window.cele_date.style.display="";
    window.cele_date.style.zIndex=99
    var s,cur_d
    var eT = eP.offsetTop;  
    var eH = eP.offsetHeight+eT;  
    var dH = window.cele_date.style.pixelHeight;  
    var sT = document.body.scrollTop; 
    var sL = document.body.scrollLeft; 
    event.cancelBubble=true;
    window.cele_date.style.posLeft = event.clientX-event.offsetX+sL-5;  
    window.cele_date.style.posTop = event.clientY-event.offsetY+eH+sT-5;
    if (window.cele_date.style.posLeft+window.cele_date.clientWidth>document.body.clientWidth) window.cele_date.style.posLeft+=eP.offsetWidth-window.cele_date.clientWidth;
    if (d_start!=""){
        if (d_start=="today"){
            date_start=new Date(today.getYear(),today.getMonth(),today.getDate());
        }else{
            s=d_start.split(separator);
            date_start=new Date(s[0],s[1]-1,s[2]);
        }
    }else{
        date_start=new Date(1900,1,1);
    }if (d_end!=""){
        s=d_end.split(separator);
        date_end=new Date(s[0],s[1]-1,s[2]);
    }else{
        date_end=new Date(3000,1,1);
    }g_object=t_objectcur_d=new Date()
    set_cele_date(cur_d.getYear(),cur_d.getMonth()+1);
    window.cele_date.style.display="block";window.cele_date.focus();}
      

  15.   

    function td_click(t_object)
    {
    var t_d
    if (parseInt(t_object.innerHTML,10)>=1 && parseInt(t_object.innerHTML,10)<=31 ) 
    { t_d=new Date(cele_date_year.value,cele_date_month.value-1,t_object.innerHTML)
    if (t_d<=date_end && t_d>=date_start)
    {
    var year = cele_date_year.value;
    var month = cele_date_month.value;
    var day = t_object.innerHTML;
    if (parseInt(month)<10) month = "0" + month;
    if (parseInt(day)<10) day = "0" + day;g_object.value=year+separator+month+separator+day;
    window.cele_date.style.display="none";};
    }}
    function h_cele_date()
    {
    window.cele_date.style.display="none";
    }function overcolor(obj)
    {
      if (obj.style.cursor=="hand") obj.style.color = "#FF0000";  inover=true;
      window.cele_date.focus();}function outcolor(obj)
    {
    obj.style.color = "#000000";
    inover=false;}function getNow(o){
        var Stamp=new Date();
        var year = Stamp.getYear();
        var month = Stamp.getMonth()+1;
        var day = Stamp.getDate();
        if(month<10){
    month="0"+month;
        }
        if(day<10){
    day="0"+day;
        }
        o.value=year+separator+month+separator+day;
    }function hilayer()
    {
    if (inover==false)
    {
    var lay=document.all.cele_date;
    lay.style.display="none";
    }
    }
    function getlayerfocus()
    {
    inover=true;
    }
    function lostlayerfocus()
    {
    inover=false;
    }
    init();
    //日历结束
    然后我在aspx中这样调用
     <input id="Text1" type="text" name="Text1" onfocus="show_cele_date(Text1,'','',Text1)" />
    也还是不行的,说是缺少对象 
      

  16.   

    母版页中有
     <script type="text/javascript" src="PopUpCalendar.js" ></script>
      

  17.   

    [code=JScript]var g_object;
    /**
    * 显示日历选择菜单
    *@ eP 日历图片点击对象
    *@ eD 需要输入日期的form 控件对象
    *@ dmin
    *@ dmax
    *@ fnCB
    *返回2003-01-01格式的日期,并把日期数值传入到该编辑框控件
    */
    function ShowCalendar(obj)
    {
        //alert(obj);
    var result = window.showModalDialog("../scripts/calendar.htm",null,"dialogWidth:60px;dialogHeight:172px;help:no;resizable:yes;status:no;scroll:no;");
    if (typeof(result) != "undefined")
    {
    obj.value = result;
    }
    }
    function ShowCalendar2(obj)
    {
    var result = window.showModalDialog("scripts/calendar.htm",null,"dialogWidth:60px;dialogHeight:172px;help:no;resizable:yes;status:no;scroll:no");
    if (typeof(result) != "undefined")
    {
    obj.value = result;
    }
    }function ShowTime(obj)
    {
    var result = window.showModalDialog("scripts/time.htm",null,"dialogWidth:280px;dialogHeight:290px;help:no;resizable:yes;status:no;scroll:yes");
    if (typeof(result) != "undefined")
    {
    obj.value = result;
    }
    }function ShowTime2(obj)
    {
    var result = window.showModalDialog("scripts/time.htm",null,"dialogWidth:280px;dialogHeight:290px;help:no;resizable:yes;status:no;scroll:yes");
    var oldvalue = obj.value + " ";
    if (typeof(result) != "undefined")
    {
    obj.value = oldvalue + result;
    }
    }function getCurrentDate()
    {
    var today = new Date();
    var vYear = today.getYear();
    var vMonth = today.getMonth() + 1;
    var vDay = today.getDate();
    vDate = today.getYear() + "-";
    if (vMonth < 10)
    vDate += "0" + vMonth;
    else
    vDate += "" + vMonth; vDate+="-"
    if (vDay < 10)
    vDate += "0" + vDay;
    else
    vDate += "" + vDay; return vDate;
    }function getCurrentTime()
    {
    var today = new Date();
    var vHours = today.getHours();
    var vMinutes = today.getMinutes();
    var vTime = "";
    if (vHours < 10)
    vTime += "0" + vHours;
    else
    vTime += "" + vHours; vTime+=":"
            vMinutes = (Math.floor(vMinutes/10))*10;
    if (vMinutes < 10)
    vTime += "0" + vMinutes;
    else
    vTime += "" + vMinutes; return vTime;
    }var date_start,date_end,g_object
    var date_cur_day;//今日当前日期全格式:2004-07-13
    var disble_ground=new Image;
    var a1=new Image;
    var a2=new Image;
    a1.src="../Image/prev.gif";
    a2.src="../Image/next.gif";
    /* mode :时间变换的类型,temp:变换的时间 */
    function change_date(temp,mode)
    {
        var t_month,t_year;
        if (mode)
        {
            if(mode==1)
        t_month=parseInt(cele_date_month.value,10)+parseInt(temp,10);
            else
        t_month=parseInt(temp);        if (t_month<cele_date_month.options(0).text)
            {
                cele_date_month.value=cele_date_month.options(cele_date_month.length-1).text;
                change_date(parseInt(cele_date_year.value,10)-1,0);
            }
            else
            {
                if (t_month>cele_date_month.options(cele_date_month.length-1).text)
                {
                    cele_date_month.value=cele_date_month.options(0).text;
                    change_date(parseInt(cele_date_year.value,10)+1,0);
                }
                else
                {
    cele_date_month.value=t_month;
                    set_cele_date(cele_date_year.value,cele_date_month.value);
                }
            }
        }
        else
        {
            t_year=parseInt(temp,10);
            if (t_year<cele_date_year.options(0).text)
            {
                cele_date_year.value=cele_date_year.options(0).text;
                set_cele_date(cele_date_year.value,1);
            }
            else
            {
                if (parseInt(t_year,10)>parseInt(cele_date_year.options(cele_date_year.length-1).text,10))
                {
                    cele_date_year.value=cele_date_year.options(cele_date_year.length-1).text;
                    set_cele_date(cele_date_year.value,12);
                }
                else
                {
                 cele_date_year.value=t_year;
                 //月份或者年份切换时候清空当前数据
       /*for(var x = 1; x <=7; x++)
       {
        for(var y = 1; y <= 6; y++)
        {
        eval("c"+x+"_"+y+".innerHTML="+"\"\"");
    eval("c"+x+"_"+y+".bgColor=\"white\"");
        }
       }*/
                    set_cele_date(cele_date_year.value,cele_date_month.value);
                }
            }
        }
    }code]
      

  18.   

    /* d_start 开始时间,d_end 结束时间 */
    function init(d_start,d_end)
    {
    var temp_str;
    var i=0
    var j=0
    var year_start,year_end;
    date_start=new Date(1930,1,1)
    date_end=new Date(2049,1,1)
    year_start=date_start.getYear();
    year_start=1900+year_start;
    year_end=date_end.getYear();     document.writeln("<div name=\"cele_date\" id=\"cele_date\" onClick=\"event.cancelBubble=true;\">&nbsp;</div>");     window.cele_date.innerHTML="";
         temp_str="<table border=0 cellpadding=1 cellspacing=1 bgcolor=#B5C4E6 class=\"pop\"><tr><td colspan=7 valign=\"top\">";
         temp_str+="<img id=s_a1 name=s_a1 src=\"a1.gif\" language=\"javascript\" onclick=\"change_date(-1,1)\" style=\"CURSOR:hand\">";//左面的箭头
         temp_str+=""//年
         temp_str+="<select name=\"cele_date_year\" id=\"cele_date_year\" language=\"javascript\" onchange=\"change_date(this.value,0)\">"
         for (i=year_start;i<=year_end;i++)
         {
         temp_str+="<OPTION value=\""+i.toString()+"\">"+i.toString()+"</OPTION>";
         }
         temp_str+="</select>";
         temp_str+=""//月
         temp_str+="<select name=\"cele_date_month\" id=\"cele_date_month\" language=\"javascript\" onchange=\"change_date(this.value,2)\" >"
         for (i=1;i<=12;i++)
         {
          temp_str+="<OPTION value=\""+i.toString()+"\">"+i.toString()+"</OPTION>";
         }
         temp_str+="</select>";
         temp_str+=""//右箭头
         temp_str+="<img id=s_a2 name=s_a2 src=\"a2.gif\" language=\"javascript\" onclick=\"change_date(1,1)\" style=\"CURSOR:hand\" >";
         temp_str+="</td></tr><tr height=\"12\" class=\"pop\" bgcolor=White><td>"
         temp_str+="日</td><td>";temp_str+="一</td><td>"; temp_str+="二</td><td>"; temp_str+="三</td><td>"
         temp_str+="四</td><td>";temp_str+="五</td><td>"; temp_str+="六</td></tr>";
         for (i=1 ;i<=6 ;i++)
         {
          temp_str+="<tr>";
            for(j=1;j<=7;j++){
                temp_str+="<td name=\"c"+i+"_"+j+"\"id=\"c"+i+"_"+j+"\" bgColor='white' style=\"CURSOR: hand\" language=\"javascript\" onclick=\"td_click(this)\">&nbsp;</td>"
            }
          temp_str+="</tr>"
         }
         temp_str+="</td></tr></table>";
         window.cele_date.innerHTML=temp_str;
         document.all("s_a1").src=a1.src
         document.all("s_a2").src=a2.src
         var cur_d=new Date(); /*设置日历的默认选择*/
         set_cele_date(cur_d.getYear(),cur_d.getMonth()+1);
    }/* year 年,month 月 */
    function set_cele_date(year,month)
    {
       var i,j,p,k
       var nd=new Date(year,month-1);
       cele_date_year.value=year;
       cele_date_month.value=month;
       k=nd.getDay()-1;
       var curDate = new Date();
       var curYear = curDate.getYear();
       var curMonth = curDate.getMonth()+1;
       
       for (i=1 ;i<=6 ;i++)
       {
            for(j=1;j<=7;j++)
            {
             eval("c"+i+"_"+j+".innerHTML="+"\"&nbsp;\"");
    eval("c"+i+"_"+j+".bgColor=\"white\"");
            } 
       }
       
       //计算填充数据
       while(month-1==nd.getMonth())
       {
         j=(nd.getDay() +1);
            p=parseInt((nd.getDate()+k) / 7)+1;
            if (nd.getDate() == curDate.getDate() && year == curYear && month == curMonth)
            {
    eval("c"+p+"_"+j+".innerHTML="+"\"" + nd.getDate() + "\"");
    eval("c"+p+"_"+j+".bgColor=\"#AAAAAA\"");

    //记录当前日期全格式
    date_cur_day = curYear + "-";
    if (curMonth < 10)
    date_cur_day += "0" + curMonth + "-";
    else
    date_cur_day += curMonth + "-";
    if (nd.getDate() < 10)
    date_cur_day += "0" + nd.getDate();
    else
    date_cur_day += nd.getDate();
    }
    else
    {
    eval("c"+p+"_"+j+".innerHTML="+"\""+nd.getDate()+"\"");
    eval("c"+p+"_"+j+".bgColor=\"white\"");
    }     if (nd>date_end || nd<date_start)
         {
             eval("c"+p+"_"+j+".style.backgroundImage.src=disble_ground.src");
         eval("c"+p+"_"+j+".bgColor=\"menu\"");
         eval("c"+p+"_"+j+".style.cursor=\"text\"");
         }
         nd=new Date(nd.valueOf() + 86400000)
        }
    }var prevTdObj; //前面选中的TD格
    var prevTdColor;//前面选中的TD的颜色
    /* 选项中的TD */
    function td_click(t_object)
    {
    var t_d;
    var result;
    if (typeof(prevTdObj) != 'undefined') 
    {
        prevTdObj.bgColor = prevTdColor;
    }
    prevTdObj = t_object;
    prevTdColor = t_object.bgColor;
    t_object.bgColor = 'red';

    if (parseInt(t_object.innerHTML,10)>=1 && parseInt(t_object.innerHTML,10)<=31 )
    {
    t_d = new Date(cele_date_year.value,cele_date_month.value-1,t_object.innerHTML); if (t_d <= date_end && t_d >= date_start)
    {
    result = cele_date_year.value + "-";
    if (cele_date_month.value.length == 1)
    result += "0" + cele_date_month.value + "-";
    else
    result += cele_date_month.value + "-";
    if (t_object.innerHTML.length == 1)
    result += "0" + t_object.innerHTML;
    else
    result += t_object.innerHTML;

    setSelectedDay(result);
    }
    }
    }[/
      

  19.   

    搞不明白
    <asp:TextBox ID="main_changer" runat="server" Width="80px"></asp:TextBox>
    运行后,查看源代码,是这样的
    <input name="ctl00$ContentPlaceHolder1$main_changer" type="text" id="ctl00_ContentPlaceHolder1_main_changer" style="width:80px;" />
    为什么名字和ID不是main_changer了,这个是不是因为引用了母版的原因???//
      

  20.   

    俺自己写的日历控件
    http://blog.csdn.net/baby97/archive/2008/03/20/2199964.aspx