Calendar.OnSelectionChanged Method
Raises the SelectionChanged event of the Calendar control and allows you to provide a custom handler for the SelectionChanged event.
[Visual Basic] Protected Overridable Sub OnSelectionChanged() [C#] protected virtual void OnSelectionChanged(); [C++] protected: virtual void OnSelectionChanged(); [JScript] protected function OnSelectionChanged();
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 Raising an Event.
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.
Example
[Visual Basic, C#] The following example demonstrates how to specify and code a handler for the SelectionChanged event to display the number of items selected in the Calendar control.
[Visual Basic] <%@ Page Language="VB" AutoEventWireup="True" %> <html> <head> <script runat="server"> Sub Selection_Change(sender As Object, e As EventArgs) ' Clear the current text. Message.Text = "" ' Iterate through the SelectedDates collection and display the ' dates selected in the Calendar control. Dim day As DateTime For Each day In Calendar1.SelectedDates Message.Text &= day.Date.ToShortDateString() & "<br>" Next End Sub </script> </head> <body> <form 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 bgcolor="Silver"> <th> Selected Dates: </th> </tr> <tr> <td> <asp:Label id="Message" Text="No dates selected." runat="server"/> </td> </tr> </table> </form> </body> </html> [C#] <%@ Page Language="C#" AutoEventWireup="True" %> <html> <head> <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 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 bgcolor="Silver"> <th> Selected Dates: </th> </tr> <tr> <td> <asp:Label id="Message" Text="No dates selected." runat="server"/> </td> </tr> </table> </form> </body> </html> [Visual Basic] <%@ Page Language="VB" AutoEventWireup="True" %> <html> <head> <script runat="server"> Sub Selection_Change(sender As Object, e As EventArgs) ' Clear the current text. Message.Text = "" ' Iterate through the SelectedDates collection and display the ' dates selected in the Calendar control. Dim day As DateTime For Each day In Calendar1.SelectedDates Message.Text &= day.Date.ToShortDateString() & "<br>" Next End Sub Sub Page_Load(sender As Object, e As EventArgs) ' Manually register the event-handling method for the ' SelectionChanged event of the Calendar control. AddHandler Calendar1.SelectionChanged, AddressOf Selection_Change End Sub </script> </head> <body> <form 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 bgcolor="Silver"> <th> Selected Dates: </th> </tr> <tr> <td> <asp:Label id="Message" Text="No dates selected." runat="server"/> </td> </tr> </table> </form> </body> </html> [C#] <%@ Page Language="C#" AutoEventWireup="True" %> <html> <head> <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 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 bgcolor="Silver"> <th> Selected dates </th> </tr> <tr> <td> <asp:Label id="Message" Text="No dates selected." runat="server"/> </td> </tr> </table> </form> </body> </html>
[C++, JScript] No example is available for C++ or JScript. To view a Visual Basic or C# example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Platforms: Windows 2000, Windows XP Professional, Windows Server 2003 family
See Also
Calendar Class | Calendar Members | System.Web.UI.WebControls Namespace | SelectionChanged