Calendar.OnSelectionChanged Method

Definition

Raises the SelectionChanged event of the Calendar control and allows you to provide a custom handler for the SelectionChanged event.

C#
protected virtual void OnSelectionChanged ();

Examples

The following code example demonstrates how to specify and code a handler for the SelectionChanged event to display the number of items selected in the Calendar control.

ASP.NET (C#)
<%@ Page Language="C#" AutoEventWireup="True" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Calendar SelectionChanged Example</title>
<script runat="server">

      void Selection_Change(Object sender, EventArgs e) 
      {
 
         // Clear the current text.
         Message.Text = "";

         // Iterate through the SelectedDates collection and display the
         // dates selected in the Calendar control.
         foreach(DateTime day in Calendar1.SelectedDates)
         {

            Message.Text += day.Date.ToShortDateString() + "<br />";

         }
         
      }

   </script>

</head>     
<body>

   <form id="form1" runat="server">

      <h3>Calendar SelectionChanged Example</h3>

      Select dates on the Calendar control.<br /><br />

      <asp:Calendar ID="Calendar1" runat="server"  
           SelectionMode="DayWeekMonth" 
           ShowGridLines="True"             
           OnSelectionChanged="Selection_Change">

         <SelectedDayStyle BackColor="Yellow"
                           ForeColor="Red">
         </SelectedDayStyle>

      </asp:Calendar>

      <hr />

      <table border="1">

         <tr style="background-color:silver">

            <th>

               Selected Dates:

            </th>
         </tr>

         <tr>

            <td>
           
               <asp:Label id="Message" 
                    Text="No dates selected." 
                    runat="server"/>

            </td>

         </tr>

      </table>

   </form>

</body>

</html>
ASP.NET (C#)
<%@ Page Language="C#" AutoEventWireup="True" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Calendar SelectionChanged Example</title>
<script runat="server">

      void Selection_Change(Object sender, EventArgs e) 
      {
 
         // Clear the current text.
         Message.Text = "";

         // Iterate through the SelectedDates collection and display the
         // dates selected in the Calendar control.
         foreach(DateTime day in Calendar1.SelectedDates)
         {

            Message.Text += day.Date.ToShortDateString() + "<br />";

         }
         
      }

      void Page_Load(Object sender, EventArgs e)
      {

         // Manually register the event-handling method for the  
         // SelectionChanged event of the Calendar control.
         Calendar1.SelectionChanged += new EventHandler(this.Selection_Change);

      }


   </script>

</head>     
<body>

   <form id="form1" runat="server">

      <h3>Calendar SelectionChanged Example</h3>

      Select a day, week, or month on the Calendar control.<br /><br />

      <asp:Calendar ID="Calendar1" runat="server"  
           SelectionMode="DayWeekMonth" 
           ShowGridLines="True">

         <SelectedDayStyle BackColor="Yellow"
                           ForeColor="Red">
         </SelectedDayStyle>

      </asp:Calendar>

      <hr />

      <table border="1">

         <tr style="background-color:silver">

            <th>

               Selected dates

            </th>
         </tr>

         <tr>

            <td>
           
               <asp:Label id="Message" 
                    Text="No dates selected." 
                    runat="server"/>

            </td>

         </tr>

      </table>

   </form>

</body>

</html>

Remarks

The SelectionChanged event is raised when the user selects a day, a week, or an entire month by clicking the date selector controls.

Raising an event invokes the event handler through a delegate. For more information, see Handling and Raising Events.

The OnSelectionChanged method also allows derived classes to handle the event without attaching a delegate. This is the preferred technique for handling the event in a derived class.

Notes to Inheritors

When overriding OnSelectionChanged() in a derived class, be sure to call the base class's OnSelectionChanged() method so that registered delegates receive the event.

Applies to

Product Versions
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

See also