日历控件 – 以编程方式突出显示日期

我正在玩日历控件,我似乎无法完成着色日期的简单任务。 如果用户输入7个日期,我想在日历上对这些日期进行着色,以便用户知道他们已被选中。

基本上我想做Calendar.HighlightDate(“5/1/11”)=>虚构大声笑我知道这一定很简单,但我通过MSDN上的属性并没有找到任何东西。

设置日历对象的ondayrender事件:

 

然后在您的代码后面,您可以检查日期并设置颜色:

  protected void MyDayRenderer(object sender, DayRenderEventArgs e) { if (e.Day.IsToday) { e.Cell.BackColor = System.Drawing.Color.Aqua; } if (e.Day.Date == new DateTime(2011,5,1)) { e.Cell.BackColor = System.Drawing.Color.Beige; } } 

这是我在很久以前在项目中使用的一些代码。 现在可能有更好的方法。 但这应该有效。 我能找到的最简单的方法就是参加DayRender活动。

我用它来突出显示已预订,待定或可用于出租物业的特定日期。

 protected void Calendar1_DayRender(object sender, DayRenderEventArgs e) { for (int x = 0; x < ar.Count; x++) { //if the date is in the past, just mark it as booked. if (e.Day.Date < DateTime.Now) { e.Cell.BackColor = System.Drawing.Color.FromArgb(38, 127, 0); e.Cell.ForeColor = System.Drawing.Color.White; } if (e.Day.Date.ToShortDateString() == Convert.ToDateTime(((ListItem)ar[x]).Text).ToShortDateString()) { switch (((ListItem)ar[x]).Value) { case "1": e.Cell.BackColor = System.Drawing.Color.FromArgb(220,220,220); break; case "2": e.Cell.BackColor = System.Drawing.Color.FromArgb(38,127,0); e.Cell.ForeColor = System.Drawing.Color.White; break; case "3": if (e.Day.IsWeekend) { e.Cell.BackColor = System.Drawing.Color.FromArgb(255,255,204); } else { e.Cell.BackColor = System.Drawing.Color.White; } break; default: e.Cell.BackColor = System.Drawing.Color.White; break; } } } }