正在阅读:为你的Blog打造个性日历控件为你的Blog打造个性日历控件

2004-06-11 10:04 出处:CSDN 作者:devercn 责任编辑:linjixiong


  while( ! arrNextDays[j].Equals(0) )
        {
              if(d.Date.Day.Equals(arrNextDays[j]))
              {
                    c.Controls.Clear();
                    c.Controls.Add(new LiteralControl("<a href=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;
  }






察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:
键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品