今天又是周未了,继续我的blog,边学边Coding吧!
定下的任务是完成日历控件的编码,在网上也找了几篇文章,
http://www.guoblog.com/blogview.asp?logID=79
代码量比较大,看上去效率不高筛选
查了下MSDN,发现一个好办法
首先从数据库读取某一个月的日历数据,在DayRender事件里在显示每一页时利用DataView的筛选功能,对一个月的日历进行筛选,如果筛选后的行数大于0,说明当天有日志,加入链接。
部分代码如下:
protected override void OnDayRender(TableCell cell, CalendarDay day)
{
if (_dtSource != null)
{
DataView dv = new DataView(_dtSource);
//进行筛选
dv.RowFilter = string.Format(
"{0} >= #{1}# and {0} < #{2}#",
this.DayField,
day.Date.ToString("MM-dd-yyyy"),
day.Date.AddDays(1).ToString("MM-dd-yyyy")
);
if (dv.Count > 0)
{
cell.Controls.Clear();
cell.Controls.Add(new LiteralControl(string.Format("<a href=?Date={0}>{1}</a>",day.Date.ToString(),day.Date.Day)));
}
}
}
{
if (_dtSource != null)
{
DataView dv = new DataView(_dtSource);
//进行筛选
dv.RowFilter = string.Format(
"{0} >= #{1}# and {0} < #{2}#",
this.DayField,
day.Date.ToString("MM-dd-yyyy"),
day.Date.AddDays(1).ToString("MM-dd-yyyy")
);
if (dv.Count > 0)
{
cell.Controls.Clear();
cell.Controls.Add(new LiteralControl(string.Format("<a href=?Date={0}>{1}</a>",day.Date.ToString(),day.Date.Day)));
}
}
}