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