代码改变世界

学习日志(blog日历控件)-2005年11月12日

2005-11-12 01:09  sun@live  阅读(884)  评论(0编辑  收藏  举报

今天又是周未了,继续我的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)));
                }
            }
        }