asp.net - How to use Calendar DayRender event

Calendar DayRender event
The Calendar is an ASP.NET web server control that allows us to select an individual date or date range. The Calendar displays the dates for one month at a time with a total of six weeks appearing at the same time. In an ASP.NET web page Calendar server control is rendered as an HTML table. By default, each day of Calendar control contains a LinkButton control that raises an event when it is clicked.

The Calendar DayRender event occurs when each day is created in the control hierarchy of the Calendar control. DayRender event is raised when each date cell in the Calendar control is created. So it is possible to modify the date cell content and format the individual date cells before it is displayed on the web page.

We can write an event handler for the Calendar DayRender event to customize the content and appearance of any specific date cell or cells. We can add only static control to any date cell such as Literal, Label, HyperLink, and Image. We can change the Calendar default background color, set a background image, and change the text color of any date cell by using this DayRender event. We also can put any text, image, or hyperlink in a date cell.

The following ASP.NET C# example code demonstrates to us how can we use Calendar DayRender event in an ASP.NET application.
CalendarDayRenderEvent.aspx

<%@ Page Language="C#" AutoEventWireup="true" %>

<!DOCTYPE html>

<script runat="server">
    protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
    {
        if (e.Day.DayNumberText == "19" | e.Day.DayNumberText == "21")
        {
            e.Cell.BackColor = System.Drawing.Color.Crimson;
            e.Cell.BorderColor = System.Drawing.Color.Pink;
            e.Cell.Font.Italic = true;
            e.Cell.Font.Size = FontUnit.Large;
        }
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>How to use Calendar DayRender event in asp.net</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <h2 style="color:SlateBlue; font-style:italic;">
            How to use Calendar DayRender Event in asp.net
        </h2>
        <hr width="550" align="left" color="SlateGray" />
        <asp:Calendar
            ID="Calendar1" 
            runat="server"
            NextPrevFormat="FullMonth"
            ForeColor="WhiteSmoke"
            SelectionMode="Day"
            DayNameFormat="Full"
            Font-Names="Book Antiqua"
            Font-Size="Medium"
            OnDayRender="Calendar1_DayRender"
            >
            <DayHeaderStyle
                 BackColor="DimGray"
                 />
            <DayStyle
                 BackColor="SlateGray"
                 BorderColor="SkyBlue"
                 BorderWidth="1"
                 Font-Bold="true"
                 Font-Italic="true"
                 />
            <NextPrevStyle
                 Font-Italic="true"
                 Font-Names="Arial CE"
                 />
            <SelectedDayStyle
                 BackColor="Green"
                 BorderColor="SpringGreen"
                 />
            <OtherMonthDayStyle BackColor="Gray" />
            <TitleStyle
                 BackColor="MidnightBlue"
                 Height="36"
                 Font-Size="Large"
                 Font-Names="Courier New Baltic"
                 />
        </asp:Calendar>
    </div>
    </form>
</body>
</html>