<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      帶日期標注的日歷控件

      [摘要]控件名稱:Calendar with Date Mark版 本:1.0類 型:HTML Component運行需求:IE 5(推薦IE5.5或更高版本)、MSXML、ASP或ASP.NET(后臺)費 用:免費支 持:不提供支持源 代 碼:XML Scriptlet-----...
      控件名稱:Calendar with Date Mark
      版    本:1.0
      類    型:HTML Component
      運行需求:IE 5(推薦IE5.5或更高版本)、MSXML、ASP或ASP.NET(后臺)
      費    用:免費
      支    持:不提供支持
      源 代 碼:XML Scriptlet
      ------------------------------------------------------------------------
      <public:attach event="oncontentready" onevent="init()"/>
      <public:property name="value" get="getValue" put="setValue"/>
      <public:property name="stringValue" get="getStringValue" />
      <public:property name="mark" get="getCurrentMark" put="setCurrentMark" />
      <public:property name="markList" get="getMarkList" />
      <public:method name="refresh" />
      <public:method name="addMark" />
      <public:method name="removeMark" />
      <public:method name="removeAllMark" />
      <public:method name="loadMark" />
      <public:method name="saveMark" />
      <public:event name="onvaluechange" id="vlcg" />
      <script language="JScript">

      //----------------------------------------------------------------
      //  HTML Component : Calendar with date mark(帶時間標注的日歷控件)
      //
      //  Version        : 1.0
      //
      //  Request        : Microsoft IE 5 or up
      //
      //  Author         : JoJo
      //
      //  Last Realse    : 5/9/2001
      //
      //  Copyright      : Think Space Soft Tec
      //
      //  Contact        : thinkspace@163.net
      //----------------------------------------------------------------

      var date = new Date();
      var activeDate = new Date();

      var marklist = new ActiveXObject("Scripting.Dictionary");

      function WriteXMLToDictionary(xmldoc,dict,rewrite){
        var xnodelist = xmldoc.documentElement.selectNodes("Mark");
        if (rewrite) dict.RemoveAll();
        for (var i=0;i<xnodelist.length;i++){
          var xnode = xnodelist.item(i);
          var xdate = xnode.selectSingleNode("MarkDate");
          var xnote = xnode.selectSingleNode("Note");
          //alert(xdate.text + "," + xnote.text);
          if (xdate.text && xnote.text){
            dict.item(xdate.text) = xnote.text;
          }
        }
      }

      function postxml(xmldoc,url){
        var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        xmlhttp.Open("POST",url,false);
        xmlhttp.Send(xmldoc);
        var xdoc = new ActiveXObject("Microsoft.XMLDom");
        xdoc.async = false;
        xdoc.loadXML(xmlhttp.responseText);
        return !!xdoc.documentElement.text;
      }

      function saveMark(url){
        var xmldoc = new ActiveXObject("Microsoft.XMLDom");
        WriteDictionaryToXML(marklist,xmldoc);
        if(postxml(xmldoc,url)){
          refresh();
          sendEvent();
          return true;
        }
        return false;
      }

      function WriteDictionaryToXML(dict,xmldoc){
        xmldoc.loadXML("<MarkList/>");
        var keys = (new VBArray(dict.Keys())).toArray();
        for (var i=0;i<keys.length;i++){
          try{
            var d = new Date(keys[i]);
          }catch(e){
            continue;
          }
          if (!dict.item(keys[i])) continue;
          var xmark = xmldoc.createElement("Mark");
          var xmarkdate = xmldoc.createElement("MarkDate");
          xmarkdate.text = dateToSortString(d);
          var xnote = xmldoc.createElement("Note");
          xnote.text = dict.item(keys[i]);
          xmark.appendChild(xmarkdate);
          xmark.appendChild(xnote);
          xmldoc.documentElement.appendChild(xmark);
        }
      }

      function loadMark(url,rewrite){
        var xmldoc = new ActiveXObject("Microsoft.FreeThreadedXMLDOM");
        xmldoc.async = false;
        xmldoc.load(url);
        //alert(xmldoc.xml);
        WriteXMLToDictionary(xmldoc,marklist,rewrite);
        refresh();
        sendEvent();
      }

      function refresh(){
        fillCalendar(date);
      }

      function getCurrentMark(){
        if(!getMark(activeDate)) return "";
        return getMark(activeDate);
      }

      function setCurrentMark(markvalue){
        addMark(activeDate,markvalue);
      }

      function getMarkList(){
        return marklist;
      }

      function dateToSortString(adate){
        return (adate.getMonth()+1) + "/" + adate.getDate() + "/" + adate.getFullYear();
      }

      function getMark(adate){
        if (marklist.Exists(dateToSortString(adate)))
          return marklist.Item(dateToSortString(adate));
      }

      function addMark(adate,note){
        if (!note) return false;
        try{
          var d = new Date(adate);
          marklist.item(dateToSortString(d)) = note;
          fillCalendar(date);
          return true;
        }catch(e){
          return false;
        }
      }

      function removeMark(adate){
        try
        {
          marklist.Remove(dateToSortString(adate));
          fillCalendar(date);
        }catch(e){
        }
      }

      function removeAllMark(){
        marklist.RemoveAll();
        fillCalendar(date);
      }

      function sendEvent(){
        var oevent = createEventObject();
        vlcg.fire(oevent);
      }

      function getStringValue(){
        return activeDate.getFullYear() + "年" + (activeDate.getMonth() + 1) + "月" + activeDate.getDate() + "日";
      }

      function getValue(){
        return activeDate;
      }

      function setValue(invalue){
        try{
          var tdate = new Date(invalue);
          activeDate.setFullYear(tdate.getFullYear(),tdate.getMonth(),tdate.getDate());
          date.setFullYear(tdate.getFullYear(),tdate.getMonth(),tdate.getDate());
          fillCalendar(date);
          sendEvent();
        }catch(e){
          return;
        }
      }
      function fillCalendar(adate){
        ynm.innerText = adate.getFullYear() + "年" + (adate.getMonth() + 1) + "月";
        var tempdate = new Date();
        tempdate.setFullYear(adate.getFullYear(),adate.getMonth(),1);
        var first = true;
        for (var i=0;i<tblbd.rows.length;i++){
          for (var j=0;j<tblbd.rows(i).cells.length;j++){
            var cell = tblbd.rows(i).cells(j);
            cell.innerHTML = "&nbsp;";
            cell.bgcolor = "";
            cell.title = "";
            cell.style.backgroundColor = "";
            
            if (tempdate.getDay() == j){
              if (!first) continue;
              cell.innerText = tempdate.getDate();

              if (getMark(tempdate)){
                cell.bgcolor = "wheat";
                cell.style.backgroundColor = cell.bgcolor;
                var tt = getMark(tempdate);
                if (tt.length<20)
                  cell.title = tt
                else
                  cell.title = tt.substr(0,20) + "...";
              }
              
              if (tempdate.getDate() == activeDate.getDate()){
                hightLightDate(cell);
              }
              
              tempdate.setFullYear(tempdate.getFullYear(),tempdate.getMonth(),tempdate.getDate()+1);
              first = tempdate.getDate() > 1;
            }
          }
        }
      }

      function hightLightDate(object){
        var tds = tblbd.all.tags("TD");
        for (var i=0;i<tds.length;i++){
          if (tds(i) != object){
            tds(i).style.backgroundColor = tds(i).bgcolor;
            tds(i).style.color = ""
          }else{
            tds(i).style.backgroundColor = "navy";
            tds(i).style.color = "white";
          }
        }
      }

      function selectDate(){
        var i = parseInt(window.event.srcElement.innerText);
        if ((!isNaN(i)) && (i<3000)){
          hightLightDate(window.event.srcElement);
          activeDate.setFullYear(date.getFullYear(),date.getMonth(),i);
          sendEvent();
        }
      }

      function moveDate(){
        var k = window.event.keyCode;
        switch(k){
          case 37:
            activeDate.setFullYear(activeDate.getFullYear(),activeDate.getMonth(),activeDate.getDate()-1);
            break;
          case 38:
            activeDate.setFullYear(activeDate.getFullYear(),activeDate.getMonth(),activeDate.getDate()-7);
            break;
          case 39:
            activeDate.setFullYear(activeDate.getFullYear(),activeDate.getMonth(),activeDate.getDate()+1);
            break;
          case 40:
            activeDate.setFullYear(activeDate.getFullYear(),activeDate.getMonth(),activeDate.getDate()+7);
            break;
        }
        date.setFullYear(activeDate.getFullYear(),activeDate.getMonth(),activeDate.getDate());
        fillCalendar(date);
        sendEvent();
      }

      function setActiveDate(){
        var i = activeDate.getDate();
        activeDate.setFullYear(date.getFullYear(),date.getMonth(),i);
        while ((date.getMonth() != activeDate.getMonth()) (date.getFullYear() != activeDate.getFullYear())){
          activeDate.setFullYear(date.getFullYear(),date.getMonth(),i--);
        }
        sendEvent();
      }

      function goNextMonth(){
        date.setMonth(date.getMonth()+1,1);
        setActiveDate();
        fillCalendar(date);
      }

      function goNextYear(){
        date.setFullYear(date.getFullYear()+1,date.getMonth(),1);
        setActiveDate();
        fillCalendar(date);
      }

      function goPriorYear(){
        date.setFullYear(date.getFullYear()-1,date.getMonth(),1);
        setActiveDate();
        fillCalendar(date);
      }

      function goPriorMonth(){
        date.setMonth(date.getMonth()-1,1);
        setActiveDate();
        fillCalendar(date);
      }

      //---------------------------------------------------------------------

      var tbl = window.document.createElement("<TABLE style=\"border:solid 1px;width:100%;height:100%;font-size:9pt\" cellspacing=0>");
      var tblhd = window.document.createElement("THEAD");
      var tblbd = window.document.createElement("TBODY");

      var anchorPriorYear = window.document.createElement("A");
      anchorPriorYear.style.fontFamily = "webdings";
      anchorPriorYear.style.cursor = "hand";
      anchorPriorYear.innerText = "7";
      anchorPriorYear.title = "上一年";

      var anchorPriorMonth = window.document.createElement("A");
      anchorPriorMonth.style.fontFamily = "webdings";
      anchorPriorMonth.style.cursor = "hand";
      anchorPriorMonth.innerText = "3";
      anchorPriorMonth.title = "上一月";

      var anchorNextMonth = window.document.createElement("A");
      anchorNextMonth.style.fontFamily = "webdings";
      anchorNextMonth.style.cursor = "hand";
      anchorNextMonth.innerText = "4";
      anchorNextMonth.title = "下一月";

      var anchorNextYear = window.document.createElement("A");
      anchorNextYear.style.fontFamily = "webdings";
      anchorNextYear.style.cursor = "hand";
      anchorNextYear.innerText = "8";
      anchorNextYear.title = "下一年";

      var ynm = window.document.createElement("FONT");
      ynm.style.width = "60%";
      ynm.style.fontWeight = "bold";

      var cpt = window.document.createElement("CAPTION");

      tbl.appendChild(cpt);
      tbl.appendChild(tblhd);
      tbl.appendChild(tblbd);

      function inithead(){
        cpt.style.backgroundColor = "navy";
        cpt.style.color = "white";
        cpt.style.textAlign = "center";
        cpt.style.cursor = "defalut";
        cpt.appendChild(anchorPriorYear);
        cpt.appendChild(anchorPriorMonth);
        cpt.appendChild(ynm);
        cpt.appendChild(anchorNextMonth);
        cpt.appendChild(anchorNextYear);
        var row = tblhd.insertRow();
        row.align = "center";
        var weekStr = new Array("日","一","二","三","四","五","六");
        for (var i=0;i<weekStr.length;i++){
          var cell = row.insertCell();
          cell.innerText = weekStr[i];
          cell.style.borderBottom = "solid 1px";
          cell.style.cursor = "default";
            cell.align = "center";
        }
      }

      function initbody(){
        for (var i=0;i<6;i++){
          var row = tblbd.insertRow();
          for (var j=0;j<7;j++){
            var cell = row.insertCell();
            cell.innerHTML = "&nbsp;";
            cell.style.cursor = "default";
            cell.align = "center";
          }
        }
      }

      function init(){
        inithead();
        initbody();
        element.appendChild(tbl);
        fillCalendar(date);
        tblbd.attachEvent("onclick",selectDate);
        tblbd.attachEvent("onkeydown",moveDate);
        anchorPriorYear.attachEvent("onclick",goPriorYear);
        anchorPriorMonth.attachEvent("onclick",goPriorMonth);
        anchorNextMonth.attachEvent("onclick",goNextMonth);
        anchorNextYear.attachEvent("onclick",goNextYear);
        sendEvent();
      }
      </script>




      日韩精品一区二区三区高清