asp.net - Blog的calendar
此為網路行銷課程的一部分,由組員共同撰寫文章,借發文於MUKI space*
為了保護原作者的權益,文章不刪減修改任何一字。
此篇文章發表者:mion
大家都看過blog裡面的calendar,它會自動標出有user post文章的當天日期,那用ASP要怎麼做就在這。
STEP 1
首先必需先宣告全域這幾個變數:
- Dim dv As Data.DataView
- Dim ads As New AccessDataSource("資料庫連結位置", "")
- Dim year, month, day As Integer
STEP 2
再建立一個calendar物件,樣子怎樣隨意,重要的是以下程式碼:
- Protected Sub Calendar1_DayRender(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DayRenderEventArgs) Handles Calendar1.DayRender
- year = e.Day.Date.Year
- month = e.Day.Date.Month
- day = e.Day.Date.Day
- ads.SelectCommand = "select * from blogMessages where day(cdate(blog_date))=" & day & " and month(cdate(blog_date))=" & month & " and year(cdate(blog_date))=" & year
- dv = ads.Select(New DataSourceSelectArguments)
- If dv.Count <> 0 Then
- e.Cell.BackColor = Drawing.Color.LightPink
- Else
- e.Cell.Controls.Clear()
- e.Cell.Text = e.Day.Date.Day.ToString()
- End If
- End Sub
解說:
其中的e As System.Web.UI.WebControls.DayRenderEventArgs,有去查過藍色小鋪的人應該會知道,這是特殊變數,e就是物件本身的代號。
e.day.date.year-e.date.day,就是設定目前正在建立的年月日,我想應該不難理解這語法,因為它跟所有物件的層次是一樣的觀念。
第五行因為設計上是把blog文章建立時間資料存在blogmessages資料表裡的blog_date欄位。所以利用day(cdate(blog_date))就可以抓出日的資料,同理month(cdate(blog_date))可以找出月份,year(cdate(blog_date))可以找出年。
第六行是把符合當日有資料的顯示出來。
第七行,判斷出第六行如果不是空的,就做下面IF的語法。
把符合有資料的當天日期,背景標示成亮粉紅色。
把儲存格清掉。
讓那格式變成正常顯示的日期,再顯示出來。
這樣就能做到一般網路上看到的BLOG的CALENDAR的顯示文章日期的功能;不過要先確認你的資料庫有東西才能確實地做出測試,因為太麻煩了我直接用了範例。
注意上面紅框的日期,分別是2007/9/5、2007/9/13、2007/9/20、2007/9/27。
就是5號13號20號27號。(因為底色是粉紅色!)





謝謝~您的這篇文章給了我很大的幫助!
非常地感謝您。