Calendar 依喜好日期變色

Calendar 依喜好日期變色

其實這個問題不難,只是當下測試時候都會用

Calendar1.SelectedDayStyle.BackColor = ColorTranslator.FromHtml("#1111FF");

沒錯會變,但是每個重要的時間點都變成一樣的顏色了

 

昨日被問這個問題後,也是當下直覺式的...只接下那行指令

跑出來後去看html轉譯過的語法變成Table 並給予全部套用一樣的CSS樣式

那也就是可以在CSS或是Table形成前下手........就趕緊去看事件屬性找

 

挑了Calendar1_DayRender...運作原理就是抓取行事曆呈現時的日期後慢慢的填入

他所轉好的Table內....也就是說他會跑42次去塞值......

此時就可以獨立對該Table 內的Cell去做變色動做了....那廢話說完直接看程式碼吧@@

 

頁前


   <div>
      <asp:Calendar ID="Calendar1" runat="server" ondayrender="Calendar1_DayRender" 
        onselectionchanged="Calendar1_SelectionChanged"></asp:Calendar>
    </div>

 

 

頁後

 


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;

public partial class calender_test : System.Web.UI.Page
{
    int i = 0;
    List<string> date_temp = new List<string>();
    List<string> flag = new List<string>();

    protected void Page_Load(object sender, EventArgs e)
    {
        SelectedDatesCollection theDates = Calendar1.SelectedDates;
        theDates.Clear();   //清空 
        theDates.Add(new DateTime(2011, 5, 1));
        theDates.Add(new DateTime(2011, 5, 31));
        date_temp.Add("2011/5/1");
        date_temp.Add("2011/5/31");
        flag.Add("0");
        flag.Add("1");

    }
    protected void Calendar1_SelectionChanged(object sender, EventArgs e)
    {

    }
    protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
    {

        string Calendar1_atuo_date = e.Day.Date.ToShortDateString();

        for (int g = 0; g < flag.Count(); g++)
        {
            if (date_temp[g].ToString() == Calendar1_atuo_date)
            {

                if (flag[g] == "0")
                {
                    e.Cell.BackColor = Color.Pink;
                }
                else
                {
                    e.Cell.BackColor = Color.YellowGreen;
                }

            }

        }

    }
}

 

calender

 

檔案下載   NET 2.0版本

檔案下載   NET 4.0版本

 

 

 

 

大家一起加入blogads 賺零用錢!!