有一个文本框:id=testtext,当用户未用鼠标点击该文本框时显示当前日期,当用户点击时,弹出一个日历,用户可以选择日期,然后提交,后台可取到日期值。

解决方案 »

  1.   

    装载的时候给文本框给当前日期值,日期控键的显示为false;
    可以在文框旁边放一按钮,单击按钮显示,选择日期后辅值给文本框让日期控键的visable=false.
      

  2.   

    private void Calendar1_SelectionChanged(object sender, System.EventArgs e)
    {
    TextBox3.Text=Calendar1.SelectedDate.ToShortDateString();
    Calendar1.Visible=false;
       }//  yahooican (必胜客)  兄:这是选择日期并赋值给文本框的代码!
      

  3.   

    有2个办法,第一个方法用javascript打开模式窗口,窗口中放一日历控件,用户选择后关闭模式窗口同时刷新主窗口;第二个方法是使用第三方日历控件,比如Excentrics world公司的Calendar Popup控件就非常的好用,而且是免费版本。
      

  4.   

    <Head>中包含内容:
    <META http-equiv="Content-Type" content="text/html; charset=gb2312">
    <script language="javascript" src="jspCalendar.js"></script>调用日历的方法:
    ShowCalendar('MyCalendar', 文本框的ID, 显示位置控件的ID);客户端内容:
    <div id="MyCalendar"></div>
    <INPUT id="txtDate" type="text" size="10">
    <INPUT id="btnSelectDate" onclick="ShowCalendar('MyCalendar', 'txtDate', 'btnSelectDate');" type="button" value="Select">日历文件Calendar.js内容如下: //用于记录当前日历组件ID
    var msCalendarID = "";

    //用于记录需要赋值的Textbox的ID
    var msTextboxID = "";

    // 初始化月份
    var mMonthName = new Array("一&nbsp;&nbsp;月",
    "二&nbsp;&nbsp;月", 
    "三&nbsp;&nbsp;月", 
    "四&nbsp;&nbsp;月", 
    "五&nbsp;&nbsp;月", 
    "六&nbsp;&nbsp;月", 
    "七&nbsp;&nbsp;月", 
    "八&nbsp;&nbsp;月", 
    "九&nbsp;&nbsp;月", 
    "十&nbsp;&nbsp;月", 
    "十一月",
    "十二月"); 

    function HideElement() 

    document.getElementById(msCalendarID).style.display = "none";


    function ShowElement(PosID) 
    {
    var oCalendar = document.getElementById(msCalendarID);
    var oPos = document.getElementById(PosID);

    oCalendar.style.zIndex = 99999;
    oCalendar.style.position = "absolute";
    oCalendar.style.display = "inline";

    var iLeft = 0;
    var iTop = 0;

    while(oPos != null)
    {
    iLeft += oPos.offsetLeft;
    iTop += oPos.offsetTop;

    oPos = oPos.offsetParent;
    }

    oCalendar.style.left = iLeft;
    oCalendar.style.top = iTop + document.getElementById(PosID).offsetHeight;
    }  //获取指定年份和月份的天数 
    function GetDayNum(iYear, iMonth) 
    {
    switch(iMonth + 1)
    {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
    {
    return 31;
    }
    case 2:
    {
    return ((0 == iYear % 4) && (0 != (iYear % 100))) || (0 == iYear % 400) ? 29 : 28; 
    }
    case 4:
    case 6:
    case 9:
    case 11:
    {
    return 30;
    }
    }//switch


    // 得到今天的日期 
    function GetToday() 

    this.Now = new Date(); 
    this.Year = this.Now.getFullYear(); 
    this.Month = this.Now.getMonth(); 
    this.Day = this.Now.getDate(); 
    }  // 显示指定年份和月份的日历 
    function GetCalendar(iYear, iMonth) 
    {
    var sDaysGrid = MakeDaysGrid(iYear, iMonth);

    if(sDaysGrid != null && sDaysGrid != "")
    {
    document.getElementById(msCalendarID).innerHTML = sDaysGrid;
    }


    function MakeDaysGrid(iYear, iMonth) 
    {
    var oOneDay = new Date(iYear, iMonth, 1); 
    var iDayNum = GetDayNum(oOneDay.getFullYear(), oOneDay.getMonth()); 

    var sDaysGrid = '<table borderColor="#ffccee" width="210" border="1" bgColor="#ffeecc" style="TEXT-ALIGN: center">';
    sDaysGrid += '<tr>';
    sDaysGrid += '<td colspan="3">';
    sDaysGrid += '<SELECT onchange="GetCalendar(' + iYear + ', this.value);">';

    for(var i=0; i<12; ++i)
    {
    if (iMonth == i)
    {
    sDaysGrid += '<OPTION value="' + i + '" selected>' + mMonthName[i] + '</OPTION>';
    }
    else
    {
    sDaysGrid += '<OPTION value="' + i + '">' + mMonthName[i] + '</OPTION>';
    }
    } sDaysGrid += '</SELECT></td>';
    sDaysGrid += '<td colspan="3">';
    sDaysGrid += '<a href="javascript:GetCalendar(' + (iYear - 1) + ', ' + iMonth + ');" style="CURSOR: hand">&lt;&lt;</a>';
    sDaysGrid += '&nbsp;<input type="text" value="' + iYear + '" size="3" readOnly>&nbsp;';
    sDaysGrid += '<a href="javascript:GetCalendar(' + (iYear + 1) + ', ' + iMonth + ');" style="CURSOR: hand">&gt;&gt;</a>';
    sDaysGrid += '</td><td onclick="javascript:HideElement()" style="CURSOR: hand" onmouseenter="javascript:this.style.color=\'red\';this.style.backgroundColor=\'#ffddff\';" onmouseout="javascript:this.style.color=\'black\';this.style.backgroundColor=\'#ffeecc\';">X</td></tr>';

    sDaysGrid += '<tr><TD>日</TD><TD>一</TD><TD>二</TD><TD>三</TD><TD>四</TD><TD>五</TD><TD>六</TD></tr>';  for (var iWeek = 0; iWeek <6; iWeek++) 
    {
    sDaysGrid +='<tr>';
    var iDayOfMonth;

    for (var iDay = 0; iDay < 7; iDay++) 
    {
    iDayOfMonth = (iWeek * 7) + iDay  - oOneDay.getDay() + 1; 

    if (iDayOfMonth <= 0) 

    sDaysGrid += "<td>&nbsp;</td> "; 

    else if(iDayOfMonth <= iDayNum) 

    sDaysGrid += '<td style="CURSOR: hand" onclick="SetDay(' + iYear + ', ' + iMonth + ' ,' + iDayOfMonth + ');" onmouseenter="javascript:this.style.backgroundColor=\'#ffddff\';" onmouseout="javascript:this.style.backgroundColor=\'#ffeecc\';">' + iDayOfMonth+'</td>'; 

    else
    {
    if(iDay == 0)
    {
    sDaysGrid = sDaysGrid.substring(0, sDaysGrid.length - 4);
    break;
    }
    else
    {
    sDaysGrid += "<td>&nbsp;</td> "; 
    }
    }
    }

    if (iDayOfMonth < iDayNum)
    {
    sDaysGrid += "</tr>"; 
    }


    var oToday = new GetToday();

    sDaysGrid += '<tr><td colspan="7" style="CURSOR: hand" onmouseenter="javascript:this.style.backgroundColor=\'#ffddff\';" onmouseout="javascript:this.style.backgroundColor=\'#ffeecc\';" onclick="javascript:SetToday();">今天是:' + oToday.Year + '年' + (oToday.Month+1) + '月' + oToday.Day + '日</td></tr>';

    sDaysGrid += "</table>"; 

    return sDaysGrid; 


    function SetToday()
    {
    var oToday = new GetToday();
    document.getElementById(msTextboxID).value = oToday.Year + "/"+ (oToday.Month + 1)+ "/"  + oToday.Day;
    HideElement(); 
    } function SetDay(iYear, iMonth, iDay) 
    {
    document.getElementById(msTextboxID).value =iYear + "/"+ (iMonth + 1)+ "/"  + iDay ; 
    HideElement(); 
    }  function ShowCalendar(CalendarID, TextboxID, PosID) 
    {
    msCalendarID = CalendarID;
    msTextboxID = TextboxID;

    var oToday = new GetToday();

    GetCalendar(oToday.Year, oToday.Month);  ShowElement(PosID); 
    }
    请大家多提意见:[email protected]