为你的Blog打造个性日历控件[2]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 laohoucn 的 blog

ef=day.aspx?year="+d.date.year+"&month="+
   d.date.month+"&day="+d.date.day+">"+d.date.day+"</a>"));
   }
   j++;
   }
   }
  }
  
  日期控件一个页面能显示三个月份的日期,当前月是完整的,前一月和下一月有部分日期。dayrender事件会初始化具体日期的显示方式,在这里我们要对有blog内容的日期加上超级链接。于是我们需要在初始化时得到三个数组,数组里分别存放连续三个月的写有blog的日期。然后依次与当前日期比较,相同则加上链接。
  
  在使用dayrender事件时,你一定不要忘了它是在每个日期初始化时执行一次,这就意味着初始化一次日历控件这个事件就要执行42次,所以要尽可能的简化操作,更不要不加判断的进行重复的数据库操作,我刚开始时没注意,在该事件里写了两个读库语句,结果严重影响性能。
  
  下面这个方法是我用来获得日期数组的。
  // 得到该月有blog的日期数组
   private int[] getarrayday(int intyear,int intmonth)
   {
   int[] intarray = new int[31];
   //从数据库里选取符合要求的记录,将日期存入数组
   string strsql = "select content_time from content where year(content_time)="+intyear+
   " and month(content_time)="+intmonth;
   dr = sqlhandle.getdr(strsql);
   while(dr.read())
   {
   if( i==0 )
   {
   intarray[i] = dr.getdatetime(0).day;
   i++;
   }
   else if( dr.getdatetime(0).day != intarray[i-1] )
   {
   intarray[i] = dr.getdatetime(0).day;
   i++;
   }
   }
   dr.close();
   return intarray;
   }
  
  具体的使用效果可以去我的blog看: www.dever.cn

本文关键:为你的Blog打造个性日历控件
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top