HtmlSelect.OnServerChange(EventArgs) 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 ServerChange event of the HtmlSelect control. This allows you to provide a custom handler for the event.
protected:
virtual void OnServerChange(EventArgs ^ e);
protected virtual void OnServerChange (EventArgs e);
abstract member OnServerChange : EventArgs -> unit
override this.OnServerChange : EventArgs -> unit
Protected Overridable Sub OnServerChange (e As EventArgs)
Parameters
Examples
The following code example demonstrates how to specify and code an event handler for the ServerChange event of the HtmlSelect control. The event handler determines whether the selected items are compatible with each other.
<%@ 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">
<script runat="server">
void Button_Click (Object sender, EventArgs e)
{
Label1.Text = "You selected:";
for (int i=0; i<=Select1.Items.Count - 1; i++)
{
if (Select1.Items[i].Selected)
Label1.Text += "<br /> -" + Select1.Items[i].Text;
}
}
void Server_Change (Object sender, EventArgs e)
{
int Count = 0;
for (int i=0; i<=Select1.Items.Count - 1; i++)
{
if (Select1.Items[i].Selected)
Count++;
}
if ((Count > 1) && (Select1.Items[0].Selected))
Label2.Text = "Hey! You can't select 'All' with another selection!!";
else
Label2.Text = "";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title> HtmlSelect Example </title>
</head>
<body>
<form id="form1" runat="server">
<h3> HtmlSelect Example </h3>
Select items from the list: <br /><br />
<select id="Select1"
multiple="true"
onserverchange="Server_Change"
runat="server">
<option value="All"> All </option>
<option value="1" selected="selected"> Item 1 </option>
<option value="2"> Item 2 </option>
<option value="3"> Item 3 </option>
<option value="4"> Item 4 </option>
<option value="5"> Item 5 </option>
<option value="6"> Item 6 </option>
</select>
<br /><br />
<button id="Button1"
onserverclick="Button_Click"
runat="server">
Submit
</button>
<br /><br />
<asp:Label id="Label1"
runat="server"/>
<br />
<asp:Label id="Label2"
runat="server"/>
</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">
<script runat="server">
Sub Button_Click (sender As Object, e As EventArgs)
Dim i As Integer
Label1.Text = "You selected:"
For i = 0 to Select1.Items.Count - 1
If Select1.Items(i).Selected Then
Label1.Text = Label1.Text & "<br /> -" & Select1.Items(i).Text
End If
Next
End Sub
Sub Server_Change (sender As Object, e As EventArgs)
Dim i As Integer
Dim Count As Integer = 0
For i = 0 to Select1.Items.Count - 1
If Select1.Items(i).Selected Then
Count = Count + 1
End If
Next
If Count > 1 And Select1.Items(0).Selected Then
Label2.Text = "Hey! You can't select 'All' with another selection!!"
Else
Label2.Text = ""
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title> HtmlSelect Example </title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h3> HtmlSelect Example </h3>
Select items from the list: <br /><br />
<select id="Select1"
multiple="true"
onserverchange="Server_Change"
runat="server">
<option value="All"> All </option>
<option value="1" selected="selected"> Item 1 </option>
<option value="2"> Item 2 </option>
<option value="3"> Item 3 </option>
<option value="4"> Item 4 </option>
<option value="5"> Item 5 </option>
<option value="6"> Item 6 </option>
</select>
<br /><br />
<button id="Button1"
onserverclick="Button_Click"
runat="server">
Submit
</button>
<br /><br />
<asp:Label id="Label1"
runat="server"/>
<br />
<asp:Label id="Label2" runat="server"/>
</div>
</form>
</body>
</html>
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Button_Click (Object sender, EventArgs e)
{
// Display the selected items.
Label1.Text = "You selected:";
for (int i=0; i<=Select1.Items.Count - 1; i++)
{
if (Select1.Items[i].Selected)
Label1.Text += "<br /> -" + Select1.Items[i].Text;
}
}
void Server_Change(Object sender, EventArgs e)
{
// The ServerChange event is commonly used for data validation.
// This method will display a warning if the "All" option is
// selected in combination with another item in the list.
int Count = 0;
// Determine the number of selected items in the list.
for (int i=0; i<=Select1.Items.Count - 1; i++)
{
if (Select1.Items[i].Selected)
Count++;
}
// Display an error message if more than one item is selected with
// the "All" item selected.
if ((Count > 1) && (Select1.Items[0].Selected))
Label2.Text = "Hey! You can't select 'All' with another selection!!";
else
Label2.Text = "";
}
void Page_Load(Object sender, EventArgs e)
{
// Create an EventHandler delegate for the method you want to
// handle the event, and then add it to the list of methods
// called when the event is raised.
Select1.ServerChange += new System.EventHandler(this.Server_Change);
Button1.ServerClick += new System.EventHandler(this.Button_Click);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title> HtmlSelect Server Change Example </title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h3> HtmlSelect Server Change Example </h3>
Select items from the list: <br /><br />
<select id="Select1"
multiple="true"
runat="server">
<option value="All"> All </option>
<option value="1" selected="selected"> Item 1 </option>
<option value="2"> Item 2 </option>
<option value="3"> Item 3 </option>
<option value="4"> Item 4 </option>
<option value="5"> Item 5 </option>
<option value="6"> Item 6 </option>
</select>
<br /><br />
<button id="Button1"
runat="server">
Submit
</button>
<br /><br />
<asp:Label id="Label1"
runat="server"/>
<br />
<asp:Label id="Label2"
runat="server"/>
</div>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub Button_Click (sender As Object, e As EventArgs)
' Display the selected items.
Label1.Text = "You selected:"
Dim i As Integer
For i=0 To Select1.Items.Count - 1
If Select1.Items(i).Selected Then
Label1.Text &= "<br /> -" & Select1.Items(i).Text
End If
Next
End Sub
Sub Server_Change(sender As Object, e As EventArgs)
' The ServerChange event is commonly used for data validation.
' This method will display a warning if the "All" option is
' selected in combination with another item in the list.
Dim Count As Integer = 0
Dim i As Integer
' Determine the number of selected items in the list.
For i=0 To Select1.Items.Count - 1
If Select1.Items(i).Selected Then
Count = Count + 1
End If
Next
' Display an error message if more than one item is selected with
' the "All" item selected.
If ((Count > 1) And (Select1.Items(0).Selected)) Then
Label2.Text = "Hey! You can't select 'All' with another selection!!"
Else
Label2.Text = ""
End If
End Sub
Sub Page_Load(sender As Object, e As EventArgs)
' Create an EventHandler delegate for the method you want to
' handle the event, and then add it to the list of methods
' called when the event is raised.
AddHandler Select1.ServerChange, AddressOf Server_Change
AddHandler Button1.ServerClick, AddressOf Button_Click
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title> HtmlSelect ServerChange Example </title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h3> HtmlSelect ServerChange Example </h3>
Select items from the list: <br /><br />
<select id="Select1"
multiple="true"
runat="server">
<option value="All"> All </option>
<option value="1" selected="selected"> Item 1 </option>
<option value="2"> Item 2 </option>
<option value="3"> Item 3 </option>
<option value="4"> Item 4 </option>
<option value="5"> Item 5 </option>
<option value="6"> Item 6 </option>
</select>
<br /><br />
<button id="Button1"
runat="server">
Submit
</button>
<br /><br />
<asp:Label id="Label1"
runat="server"/>
<br />
<asp:Label id="Label2"
runat="server"/>
</div>
</form>
</body>
</html>
Remarks
The ServerChange event is raised when the selected items in the HtmlSelect control change between posts to the server.
Note
This event is raised only when the user initiates a post to the server, such as by clicking a Submit button. This event does not cause a post to the server to occur.
Note
The control must have view state enabled for the ServerChange event to work correctly.
You can use this event to perform data validation on the HtmlSelect control when the user changes the selection in the control.
Raising an event invokes the event handler through a delegate. For more information, see Handling and Raising Events.
The OnServerChange 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 the OnServerChange(EventArgs) method in a derived class, be sure to call the base class's OnServerChange(EventArgs) method so that registered delegates receive the event.