昨天有朋友问我,如果在blog中实现日历效果?
如果当天有日志,则显示链接,否则不显示链接?
如果只是单纯使用.net中的Calendar控件、不用js来写,能实现么?

答案是肯定的,那么如何去实现呢?
首先,我们知道.net中的服务器控件是会进行Postback的,Calendar控件中的第一天在点击时,就会进行一次postback
我们要做的就是改变它默认的链接,使它不触发postback事件,其次,就是要知道当天有没有日志。
至于有没有日志,就要去数据库查询了。
原始的Calendar效果:

在点击每一天时,实际上执行的是一段js,然后进行了postback
在Calendar中有一个DayRender事件,该事件在呈现每一天时触发,我们可以从这里入手

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
    {
        if (e.Day.Date == DateTime.Now.Date) 
        {
            e.Cell.Text = "<b>" + e.Day.Date.Day + "</b>";
        }
        else
            e.Cell.Text = "<em>" + e.Day.Date.Day + "</em>";
    }
上面的代码很明了了,如果在呈现每一天时,发现该天刚好是今天,则将内容重写,写成加粗的日,同时,去掉了链接。
否则,则以<em>日</em>来显示

至于给有日志的那天加链接,就不用我说了吧。

3 Responses

  1. 不惊鸟 三月 28 2007 , 13:55
    学一招。。。
    #1
  2. 下一秒 三月 28 2007 , 23:32
    那咱们加一个?
    #2
  3. iceapple 三月 30 2007 , 14:45
    iceapple
    我都没有的。。[em14]
    #3

Write a comment:



(将显示你的Gravatar图标)  



[b][/b] - [i][/i] - [u][/u]- [quote][/quote]

:-/ ^_^ :d :o :kiss: :) :p :se: [yeah] :( :love: :han: :up: :cry: :zzz: o_o

暂时停止交换链接.

评论提交有问题?