动态网站制作指南



当前位置 > 网站建设学院 > 网络编程 > ASP技巧 Rss
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket

带日期标注的日历控件


发表日期:2001-5-10


控件名称:Calendar with Date Mark
版    本:1.0
类    型:HTML Component
运行需求:IE 5(推荐IE5.5或更高版本)、MSxmlaspasp.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>

关注此文的读者还看过:
·2012-5-17 12:07:45 从文本文件中读取信息并存储入数据库
·2012-5-17 12:07:30 如何善用Response.Buffer增进浏览速度?
·2012-5-17 12:07:13 简单的检查输入email是否合法程序
·2012-5-17 12:07:09 win2000 server 全部安全补丁
·2012-5-17 12:06:58 ASP向NT域中加一个用户 
·2012-5-17 12:06:27 如何用checkbox做多选删除
·2012-5-17 12:06:24 表单递交合法性检测-不允许指定字符 
·2012-5-17 12:05:29 如何增强ASP程序性能(1)
·2012-5-17 12:05:27 在ASP程序中执行SQL语句的安全性问题
站长推荐 PS笔刷下载 在线翻译 系统进程 广告代码
  发表评论
姓 名: 验证码:
内 容:
教程搜索服务
ASP源码推荐
·百万格子程序
·FTBBS_UTF8动态ASP版 v6.3
·乐平多文件混合表单无组件上传程
·Play99_P2P电视频道 v1.5
·哈呱在线网络电视源码接口版
·天下联贴吧ASP版 Build 20070912
·申江ASP留言本 v1.19 标准版
·奇奇听书网(含数据和采集规则)
·仿站长站站长工具
·内蒙阿伦友情连接系统
·仿中国高等教育学生信息网
·校无忧学校网站系统 v1.0
项目外包信息
·UI界面设计
·产品外观改版设计 15000元
·照明灯具网站设计 10000元
·求长期合作网站设计制作高手
·做B2C网站 20000元
·Android或QT软硬件平台设计(工
·网站首页FLASH
·网站PSD稿设计
·企业网站整站网页设计(美观大气
·网站页面设计及套入程序
·UI界面设计
·产品外观改版设计 15000元
·照明灯具网站设计 10000元
·求长期合作网站设计制作高手
·PPT设计
发布信息 浏览信息
邮件订阅服务
输入你的邮件地址,你将不会错过任何关于<ASP技巧>的内容


网络编程文章分类
ASP教程
ASP实例
ASP技巧
ASP文摘
PHP教程
PHP技巧
PHP实例
PHP文摘
JSP教程
JSP技巧
JSP实例
JSP文摘
ASP.NET教程
ASP.NET技巧
ASP.NET实例
ASP.NET应用
xml教程
xsl教程
xml技巧
C#教程
C#应用
Delphi教程
Perl教程
Shell教程
Ajax教程
Visual Basic教程
Java教程
J2EE/J2ME教程
C/C++教程
移动解决方案
移动短信技术
移动行业动态
软件工程
WordPress
Android开发
站长工具:Google PR查询|Alexa排名查询|网站速度测试|CSS在线编辑器|OPEN参数生成器|弹出式窗口代码产生器|密码登录生成器|在线按钮生成器|Meta标签生成器|邮箱图标在线生成|多色彩特效字代码生成器|网页代码调试器|在线FTP登陆|Flash取色器|配色代码对照表|配色辞典|CSS生成器|CSS在线压缩|广告代码|框架网页代码生成器|js/vbs加密|md5加密|进制转换|UTF-8 转换工具|在线调色板|Html转换js|Html转换asp|Html转换php|Html转换perl
实用工具:汉字翻译拼音|拼音字典|在线翻译|天气预报|火星文|在线网速测试|符号对照表|个税计算|理财工具|黄金价格|购房银行按揭利率计算|汇率查询|经典小工具|汉字简繁转换|普通单位换算|公制单位换算|生辰老黄历|国内电话区号|国家代码与域名缩写|文字加密解密|元素周期表|健康查询|世界时间|全国各地车牌查询|全国车辆交通违章查询|万年历|二十四节气|汉字横竖排版|手机号码查询|计算器|ip搜索|酒店预订|机票预订
广告刊登 | 版权声明 | 联系我们 | 加入收藏 | RSS订阅
Copyright © 2000-2012 www.knowsky.com All rights reserved | 沪ICP备05001343号