[習題]自訂ASP.NET日曆控制項(Calendar)的日期--個人行事曆

想要作一個「個人行事曆」,
我們可以從 Calendar日曆控制項的畫面控制
來慢慢學起

好感動,我大概有一個多月沒有打開VS 2008了,也沒寫過ASP.NET程式

 

今天重新使用,那種親切感真的很讓人感動。

尤其經歷了將近兩個月的 FLEX與ActionScript的地獄折磨

特別感覺到ASP.NET 與 VS 2008是多麼的優秀與傑出!

(真的,你要是用過其他開發工具,你就會知道微軟能成功,不是偶然。   那要付出多大的資源才能作到)

 

前些日子,我要透過 FLEX也去作日曆控制項的相關動作,
不知道是語法不熟悉?還是對於工具的不善利用?
真的讓我生不如死。

相同的功能,我想寫在ASP.NET上面。
不到幾分鐘就完成了。

-------------------------------------------------------------------------------------
我今天想做的是:

      假設我的資料庫裡面,已經記載了許多行事曆。
      資料格式與內容如下:

日期(Date)、起訖時間(Time)、標題(Title)、摘要(Summary)、地點(Location)
2009/5/20    09:30~10:30     早餐會報     與碼總統、比爾蓋茲一起吃早餐    台北101大樓88F
2009/5/17    15:30~16:30     土城面會     與阿匾總統一起吃下午茶                土城

      上面這些日期,應該都要呈現在日曆控制項上面,
      只要我一點選日期,底下就會出現 GridView
      列出這一天日期的所有行事曆。
-------------------------------------------------------------------------------------

 

這個功能,最難的就是控制行事曆(日曆控制項),其他都好辦。

 

首先,我打開VS 2008,拉進一個日曆控制項(名為Calendar1)。順手用「自動格式化」,幫他美化一下。

接著,打開後置程式碼(Code Behind),看看Calendar有哪些屬性呢?
      咦?有一個 .SelectedDate感覺很接近
      上網搜尋一下MSDN文件裡頭,他的用法
      找到了,還有範例.... http://msdn.microsoft.com/zh-tw/library/system.web.ui.webcontrols.calendar.selecteddate.aspx

事先已經設定好 2009/5/21這個日期,果然Calendar一出現就會用特別顏色標記~

1     Protected Sub Calendar1_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Calendar1.Init
2
3         Calendar1.SelectedDate = "2009/5/21"
4         '--事先指定日期
5
6     End Sub

 

 

-------------------------------------------------------------------------------------

如果以上面的「行事曆」為例,我們要用到「標記多個日期」的功能,可以參考 .SelectedDates()

01     Protected Sub Calendar1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Calendar1.SelectionChanged
02         Dim i As Integer
03
04         '-- SelectedDates可以存放多天的選定日期
05         '-- 參考網頁  http://msdn.microsoft.com/zh-tw/library/system.web.ui.webcontrols.calendar.selecteddates.aspx
06
07         For i = 0 To Calendar1.SelectedDates.Count - 1
08             Label1.Text &= "<br />" & Calendar1.SelectedDates(i).ToShortDateString()
09         Next
10
11     End Sub

 

 

您也可以參考這個範例: http://msdn.microsoft.com/zh-tw/library/e057ff0d(VS.80).aspx

也非常實用。

VB語法較簡單,請看:

1     Protected Sub Calendar1_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Calendar1.Init
2
3         '--參考網頁  http://msdn.microsoft.com/zh-tw/library/e057ff0d(VS.80).aspx
4
5         Calendar1.SelectedDates.Add(New DateTime(2009, 5, 1))
6         Calendar1.SelectedDates.Add(New DateTime(2009, 5, 5))
7         Calendar1.SelectedDates.Add(New DateTime(2009, 5, 10))
8
9     End Sub

 本例 C#的語法比較複雜,請看:

1   SelectedDatesCollection theDates = Calendar1.SelectedDates;
2
3    theDates.Clear();   //清空
4
5    theDates.Add(new DateTime(2009,5,1));
6    theDates.Add(new DateTime(2009,5,5));
7    theDates.Add(new DateTime(2009,5,10));

 

 

 

後續的工作並不難。

只要一個 迴圈,搭配 IF判別式,

就能把資料庫裡面,當月份的行事曆,呈現在畫面上.....

(這邊就要自己寫一點 ADO.NET程式了,完整範例........請耐心看到最後)

 

以下是我已經完成的作品

(可惜,是Flash版的。用 FLEX + ActionScript開發,行事曆的資料不是來自資料庫,而是Google Calendar.....好在不是我負責這一塊)

 (我還曾經修改過一個PHP Calendar,PHP版的個人行事曆,請看-- [範例]我的PHP Calendar Basic修改版,開放源碼

 

我只是想說:

相同的功能,在ASP.NET + VS 2008上來作,就是更簡單!

參考文件與範例更多。

 

能在Microsoft底下開發程式,其實是很簡單、很幸福的事

(或許你覺得我被微軟寵壞了,但我繞了FLEX / Flash一圈以後,真的覺得如此~)

上述範例,另外有 Silverlight 3.0的版本,請看:不負責任講座 Silverlight 3.0 #5,自訂日曆控制項(Calendar)的日期--個人行事曆

 

 

 (謎之聲:你到底要不要把完整範例提供給大家看啊?)

不用我出手,微軟的MSDN文件已經有這個範例了。

微軟真是太棒了~~~~!!!!!!

HOW TO:在 Calendar 控制項中顯示來自資料庫的選取日期

請看:http://msdn.microsoft.com/zh-tw/library/ms228044(VS.80).aspx

http://msdn.microsoft.com/zh-tw/library/ms228044.aspx

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 今日值班正妹,小澤圓

       

 

 

 

 

 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

線上課程教學,遠距教學 (Web Form 約51hr)  https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015

線上課程教學,遠距教學 (ASP.NET MVC 約75~88hr)  https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab

ASP.NET MVC線上課程 第一天 免費看 (5.5小時) 

寫信給我,不要私訊 --  mis2000lab (at) yahoo.com.台灣  或  school (at) mis2000lab.net


ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。 

................   facebook社團   https://www.facebook.com/mis2000lab   ......................

................  YouTube (ASP.NET) 線上教學影片  https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/

 

Blog文章 "附的範例" 無法下載,請看 這裡 ...... https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download

請看我們的「售後服務」範圍(嚴格認定)

...................................................................................................................................................... 

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講

事先錄製好的影片,並非上課時側錄!   觀看影片時,有如我「一對一」跟您面對面講課

 

ASP.NET MVC 5 線上教學

         累積時數約 75~ 88小時...... 第一天(5.5小時)完整內容,"免費"讓您評估