Calendar.OnSelectionChanged Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Raises the SelectionChanged event of the Calendar control and allows you to provide a custom handler for the SelectionChanged event.
protected:
virtual void OnSelectionChanged();
protected virtual void OnSelectionChanged ();
abstract member OnSelectionChanged : unit -> unit
override this.OnSelectionChanged : unit -> unit
Protected Overridable Sub 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.
<%@ 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>
<%@ Page Language="VB" 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">
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 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>
<%@ 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>
<%@ Page Language="VB" 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">
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 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.