2017年1月2日 星期一

【ASP.NET - C#】FullCalendar 月曆插件-連接資料庫


基礎教學:https://mapleskill.blogspot.tw/2016/12/aspnet-cfullcalendar.html

屬性之應用,可參考這篇:http://www.helloweba.com/view-blog-231.html


今天主要教大家,如何連接後端,從資料庫撈需顯示的資料



Step 1

根據官網文件的說明,可使用JSON傳值,因此我們先創一個新的網頁,做傳值使用,並在屬性"events"處,給予此網址。

例: events:{url: 'getCalendarData.aspx'}

Step 2

建立一個類別檔,將所需設定的欄位,建立出來

例:



id:此筆資料的ID,若之後需做新增或修改之功能,務必要有此欄。
title:顯示的標題
start:開始時間
overlap:是否堆疊
color:背景顏色
(以上類別可有可無,你也可以自己新增其他需要的類別,EX:結束時間)


Step 3

在剛剛新建好的網頁(getCalendarData.aspx),開始撰寫程式

先宣告List

List<CalendarEvent> eventsList = new List<CalendarEvent>();

接著寫SQL語法,將資料庫資料撈出 ,並利用迴圈把每筆資料塞進eventsList裡

for (int i = 0; i < ResultDt.Rows.Count; i++) 
{ 
 CalendarEvent calEvent = new CalendarEvent();  //new一個新的類別,將值一一塞進去  
 calEvent.id = i.ToString(); //由於我的需求是要每筆資料的ID都不同,因此利用迴圈給ID  
 calEvent.start = 給值; 
 calEvent.title = 給值; 
 calEvent.overlap = true;  //true or false 
 calEvent.color = "#1221ba";  //填入色碼 
 eventsList.Add(calEvent);   //將此類別新增到eventsList 
}


Step 4


New一個JSON序列化之方法


System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();

將eventsList序列化

string strEvents = js.Serialize(eventsList);

清除並寫入

Response.Clear();
Response.Write(strEvents);
Response.End();


完成!!!

由於資料有隱私,因此有做模糊處理
如果資料超過顯示的內容 會藏在more裡