次の方法で共有


HtmlSelect.OnServerChange メソッド

HtmlSelect コントロールの ServerChange イベントを発生させます。この機能により、イベントのカスタム ハンドラを作成できます。

Protected Overridable Sub OnServerChange( _
   ByVal e As EventArgs _)
[C#]
protected virtual void OnServerChange(EventArgse);
[C++]
protected: virtual void OnServerChange(EventArgs* e);
[JScript]
protected function OnServerChange(
   e : EventArgs);

パラメータ

解説

HtmlSelect コントロールで選択された項目がサーバーへのポスト間で変更された場合は ServerChange イベントが発生します。

メモ   このイベントは、[送信] ボタンのクリックなど、ユーザーがサーバーへのポスト バックを開始したときにだけ発生します。このイベントがサーバーにポスト バックするわけではありません。

メモ    ServerChange イベントが正常に動作するためには、コントロールのビューステートを有効にしておく必要があります。

ユーザーがコントロールの選択を変更する場合は、このイベントを使用して HtmlSelect コントロールのデータ検証を実行できます。

イベントが発生すると、デリゲートを使用してイベント ハンドラが呼び出されます。詳細については、「 イベントの発生 」を参照してください。

OnServerChange メソッドを使用すると、デリゲートを結び付けずに、派生クラスでイベントを処理させることもできます。派生クラスでイベントを処理する場合は、この手法をお勧めします。

継承時の注意: 派生クラスで OnServerChange をオーバーライドする場合は、登録されているデリゲートがイベントを受け取ることができるように、基本クラスの OnServerChange メソッドを呼び出してください。

使用例

[Visual Basic, C#, JScript] HtmlSelect コントロールの ServerChange イベントのイベント ハンドラを指定およびコード化する方法の例を次に示します。このイベント ハンドラは、選択された各項目に互換性があるかどうかを確認します。

 
<%@ Page Language="VB" AutoEventWireup="True" %>

<html>

<head>

   <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> &nbsp;&nbsp; -" & Select1.Items(i).Text
            End If         

         Next i

      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 i

         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>

</head>

<body>

   <form 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="True"> 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>

[C#] 
<%@ Page Language="C#" AutoEventWireup="True" %>

<html>

<head>

   <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> &nbsp;&nbsp; -" + 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>

</head>

<body>

   <form 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="True"> 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>

[JScript] 
<%@ Page Language="JScript" AutoEventWireup="True" %>

<html>

<head>

   <script runat="server">

      function Button_Click (sender : Object, e : EventArgs) : void
      {

         Label1.Text = "You selected:";

         for (var i :  int =0; i<=Select1.Items.Count - 1; i++)
         {
  
            if (Select1.Items[i].Selected)
               Label1.Text += "<br> &nbsp;&nbsp; -" + Select1.Items[i].Text;      

         }

      }

      function Server_Change (sender : Object, e : EventArgs) : void
      {

         var Count : int = 0;

         for (var i : int =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>

</head>

<body>

   <form 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="True"> 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>

[Visual Basic] 

<%@ Page Language="VB" AutoEventWireup="True" %>

<html>

<head>

   <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> &nbsp;&nbsp; -" & Select1.Items(i).Text
            End If      

         Next i

      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 i

         ' 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>

</head>

<body>

   <form runat="server">

      <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="True"> 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"/>

   </form>

</body>

</html>


[C#] 

<%@ Page Language="C#" AutoEventWireup="True" %>

<html>

<head>

   <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> &nbsp;&nbsp; -" + 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>

</head>

<body>

   <form runat="server">

      <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="True"> 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"/>

   </form>

</body>

</html>

[C++] C++ のサンプルはありません。Visual Basic、C#、および JScript のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

HtmlSelect クラス | HtmlSelect メンバ | System.Web.UI.HtmlControls 名前空間 | ServerChange | System.EventArgs