[ Home | Syllabus | Course Notes | Assignments | Search]
Rich set of properties
Events
DayRender event can be used to prevent dates prior to today’s date from being selected:
void OnDayRender (Object sender, DayRenderEventArgs e)
{
e.Day.IsSelectable = e.Day.Date >= DateTime.Today;
}
<html>
<body>
<h1>Showtime</h1>
<hr>
<form runat="server">
Pick a show:<br>
<asp:DropDownList ID="ShowName" RunAt="Server">
<asp:ListItem Text="Cats" Selected="true" RunAt="server" />
<asp:ListItem Text="Phantom of the Opera" RunAt="server" />
<asp:ListItem Text="Les Miserables" RunAt="server" />
<asp:ListItem Text="Cabaret" RunAt="server" />
</asp:DropDownList>
<br><br>
Pick a date:<br>
<asp:Calendar
ID="ShowDate"
ShowGridLines="true"
ForeColor="darkblue"
SelectedDayStyle-BackColor="darkblue"
SelectedDayStyle-ForeColor="white"
SelectedDayStyle-Font-Bold="true"
TitleStyle-BackColor="darkblue"
TitleStyle-ForeColor="white"
TitleStyle-Font-Bold="true"
NextPrevStyle-BackColor="darkblue"
NextPrevStyle-ForeColor="white"
DayHeaderStyle-BackColor="beige"
DayHeaderStyle-ForeColor="darkblue"
DayHeaderStyle-Font-Bold="true"
OtherMonthDayStyle-ForeColor="lightgray"
OnSelectionChanged="OnDateSelected"
OnDayRender="OnDayRender"
RunAt="Server" />
<br>
<asp:ImageButton ImageUrl="OrderBtn.gif" OnClick="OnOrder"
RunAt="server" />
<br><br><hr>
<h3><asp:Label ID="Output" RunAt="server" /></h3>
</form>
</body>
</html>
<script language="C#" runat="server">
void OnOrder (Object sender, ImageClickEventArgs e)
{
if (ShowDate.SelectedDate.Year > 1900)
Output.Text = "You selected " +
ShowName.SelectedItem.Text + " on " +
ShowDate.SelectedDate.ToLongDateString ();
else
Output.Text = "Please select a date";
}
void OnDateSelected (Object sender, EventArgs e)
{
Output.Text = ""; //// erase last selected date
}
void OnDayRender (Object sender, DayRenderEventArgs e)
{
e.Day.IsSelectable =
(e.Day.Date.DayOfWeek == DayOfWeek.Friday ||
e.Day.Date.DayOfWeek == DayOfWeek.Saturday) &&
e.Day.Date >= DateTime.Today &&
!e.Day.IsOtherMonth;
if (e.Day.IsSelectable && e.Day.Date != ShowDate.SelectedDate)
e.Cell.BackColor = System.Drawing.Color.Beige;
}
</script>
F1: Lots of properties to customize the look