Partilhar via


HtmlSelect.OnServerChange(EventArgs) Método

Definição

Aciona o evento ServerChange do controle HtmlSelect. Isso permite que você forneça um manipulador personalizado para o evento.

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)

Parâmetros

e
EventArgs

Um EventArgs que contém os dados do evento.

Exemplos

O exemplo de código a seguir demonstra como especificar e codificar um manipulador de eventos para o ServerChange evento do HtmlSelect controle. O manipulador de eventos determina se os itens selecionados são compatíveis entre si.

<%@ 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>

Comentários

O ServerChange evento é gerado quando os itens selecionados no HtmlSelect controle são alterados entre postagens no servidor.

Observação

Esse evento é gerado somente quando o usuário inicia uma postagem no servidor, como clicando em um botão Enviar. Esse evento não faz com que uma postagem no servidor ocorra.

Observação

O controle deve ter o estado de exibição habilitado para que o ServerChange evento funcione corretamente.

Você pode usar esse evento para executar a validação de dados no HtmlSelect controle quando o usuário alterar a seleção no controle.

A geração de um evento invoca o manipulador de eventos por meio de um delegado. Para obter mais informações, consulte Manipulando e levantando eventos.

O OnServerChange método também permite que classes derivadas manipulem o evento sem anexar um delegado. Essa é a técnica preferencial para lidar com o evento em uma classe derivada.

Notas aos Herdeiros

Ao substituir o OnServerChange(EventArgs) método em uma classe derivada, chame o método da OnServerChange(EventArgs) classe base para que os delegados registrados recebam o evento.

Aplica-se a

Confira também