<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="CalenderRender" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Calender DayRender</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>Using DayRender</h1>
<asp:Calendar ID="calRender"
runat="server"
BackColor="White"
BorderColor="Black"
BorderStyle="Solid"
CellSpacing="1"
Font-Names="Verdana"
Font-Size="9pt"
ForeColor="Black"
Height="504px"
NextPrevFormat="ShortMonth"
Width="664px"
OnDayRender="calRender_DayRender"
OnSelectionChanged="calRender_SelectionChanged" >
<SelectedDayStyle BackColor="#333399" ForeColor="White" />
<OtherMonthDayStyle ForeColor="#999999" />
<DayStyle BackColor="#CCCCCC" />
<TodayDayStyle BackColor="#999999" ForeColor="White" />
<NextPrevStyle Font-Bold="True" Font-Size="8pt" ForeColor="White" />
<DayHeaderStyle Font-Bold="True"
Font-Size="8pt"
ForeColor="#333333"
Height="8pt" />
<TitleStyle BackColor="#333399"
BorderStyle="Solid"
Font-Bold="True"
Font-Size="9pt"
ForeColor="White" Height="9pt" />
</asp:Calendar>
<asp:Label ID="labMessage" runat="server" />
</div>
</form>
</body>
</html>
File: Default.aspx.cs
using System.Collections;
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
public class CalenderEvent
{
public enum EventTypes
{
AllDayEvent, Appointment, ToDoReminder
}
private string _shortDescription;
private string _fullDescription;
private DateTime _eventDate;
private EventTypes _eventType;
public CalenderEvent(string shortDescription, string fullDescription, DateTime eventDate, EventTypes eventType)
{
_shortDescription = shortDescription;
_fullDescription = fullDescription;
_eventDate = eventDate;
_eventType = eventType;
}
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.Append(this.Date.ToShortDateString());
sb.Append(" -- ");
sb.Append(this.EventTypeString);
sb.Append("<br/>");
sb.Append(FullDescription);
return sb.ToString();
}
public string FullDescription
{
get { return _fullDescription; }
set { _fullDescription = value; }
}
public string ShortDescription
{
get { return _shortDescription; }
set { _shortDescription = value; }
}
public DateTime Date
{
get { return _eventDate; }
set { _eventDate = value; }
}
public EventTypes Type
{
get { return _eventType; }
set { _eventType = value; }
}
public string EventTypeString
{
get
{
if (this.Type == EventTypes.AllDayEvent)
return "All Day Event";
else if (this.Type == EventTypes.Appointment)
return "Appointment";
else
return "To Do Reminder";
}
}
public string ImageFile
{
get
{
if (this.Type == EventTypes.AllDayEvent)
return "cal_allday.gif";
else if (this.Type == EventTypes.Appointment)
return "cal_appointment.gif";
else
return "cal_todo.gif";
}
}
}
public partial class CalenderRender : System.Web.UI.Page
{
private ArrayList _events;
protected void Page_Load(object sender, EventArgs e)
{
FillCalender();
}
private void FillCalender()
{
_events = new ArrayList();
_events.Add(new CalenderEvent("A", "event a", DateTime.Now, CalenderEvent.EventTypes.Appointment));
_events.Add(new CalenderEvent("B", "event b", DateTime.Now.AddDays(2.0), CalenderEvent.EventTypes.ToDoReminder));
_events.Add(new CalenderEvent("C", "event c", DateTime.Now.AddDays(5.0), CalenderEvent.EventTypes.AllDayEvent));
}
protected void calRender_DayRender(object sender, DayRenderEventArgs e)
{
DateTime renderDay = e.Day.Date;
foreach (CalenderEvent cEvent in _events)
{
if (renderDay.ToShortDateString() == cEvent.Date.ToShortDateString())
{
Image img = new Image();
img.ImageUrl = "~/images/" + cEvent.ImageFile;
img.ToolTip = cEvent.ShortDescription;
img.ImageAlign = ImageAlign.Middle;
e.Cell.Controls.Add(img);
}
}
}
protected void calRender_SelectionChanged(object sender, EventArgs e)
{
DateTime selectDay = calRender.SelectedDate;
string message = "";
foreach (CalenderEvent cEvent in _events)
{
if (selectDay.ToShortDateString() == cEvent.Date.ToShortDateString())
{
message = cEvent.ToString();
}
}
if (message == "")
labMessage.Text = "No event scheduled for " + selectDay.ToShortDateString();
else
labMessage.Text = message;
}
}