今天要使用的是Calendar這個需要動動手手才能操作的控制項
因為它不支援DataBing!!
只好找找MSDN的介紹 Calendar控制項中顯示來自資料庫的選取日期
然後自己修改一下自己想要的功能
首先實作一次裡面的範例
並修改
ConfigurationManager.ConnectionStrings["ConnectionString"];
與
query = @"SELECT HolidayDate FROM Holidays WHERE HolidayDate >= @firstDate AND HolidayDate < @lastDate";
可以在**DayRender**裡面做修改或添加自訂的內容
比如說在每個日期裡面展示資料庫的內容
protected void Calendar2_DayRender(object sender, DayRenderEventArgs e)
{
DateTime nextDate;
if (dsHolidays != null)
{
foreach (DataRow dr in dsHolidays.Tables[0].Rows)//取出資料集合中的資料
{
nextDate = (DateTime)dr["Date"];
if (nextDate.Date == e.Day.Date)//在相同日期的資料插入對應的資料
{
//e.Cell.Controls.Clear();//用來清除cell內原本的控制項
//Label Day = new Label();
//Day.Text = e.Day.Date.Day.ToString();
//e.Cell.Controls.Add(Day);
HyperLink link = new HyperLink();
//link.Target = "_blank";
link.NavigateUrl = "Details.aspx?dataID=" + dr["MessageID"];
link.Text = dr["Title"].ToString();
link.ToolTip = dr["Title"].ToString();
e.Cell.Controls.Add(link);//將這些Link擺入對應得日期cell內
}
}
}
}
這兩天用到 sender與 e 有使用過的經驗解釋起來也會比較有感覺
[*]Object Sender:指的是哪個對象只派出這個事件(肇事者的意思)
[*]EventArgs e:指的是事件觸發時細節資料的提供(事次參數的紀錄)
透過運用這些事件加上寫上自己一些功能才能好好感覺體會一下整個控制項的運作過程
程式碼沒有嚴謹很容易會有Bug,要了解事件的運作方式才能知道如何DeBug!!
.....To Be Continued
我剛好有寫過ASP.NET Calendar控制項,搭配自己的DB
做一個簡單的個人行事曆
不嫌棄的話,可以參考看看
http://www.dotblogs.com.tw/mis2000lab/archive/2012/11/06/howto_calendar_personal_schedule.aspx
其實,「關鍵」如同您說的,就是熟悉 DayRender事件就能完成囉 :-)
您有無考慮出書?
搭配這三十天的範例,最後配上一兩個整合範例(最好搭配這三十招就能做出來),這樣一定可以變成「簡單入門」又「實用」的好書。
有興趣的話,請聯絡我 mis2000lab (at) yahoo.com.tw :-)
真的很謝謝前輩Mis2000lab的支持與鼓勵,
我確實是把自己邊實作邊學習的一個小專案做整理,再寫這三十天文章的,
也希望能透過這樣的方式重新審視自己這次學習過程的內容並且精益求精,
學習不足的部分還多虧前面們的提點!!
其他事情不曾多想,能力有限還是先完成鐵人賽
真的很謝謝前輩的關注與提點
是我很大的動力!!!!