[ 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