ListControl.OnSelectedIndexChanged メソッド
アセンブリ: System.Web (system.web.dll 内)

Dim e As EventArgs Me.OnSelectedIndexChanged(e)

リスト コントロール内の選択項目がサーバーへのポスト間で変更されたときに、SelectedIndexChanged イベントが発生します。
![]() |
---|
このイベントが正常に動作するためには、サーバーへのポスト間でリスト コントロールがいくつかの値を永続化する必要があります。リスト コントロールでビューステートが有効になっていることを確認してください。 |
イベントが発生すると、デリゲートを使用してイベント ハンドラが呼び出されます。詳細については、「イベントの利用」を参照してください。
OnSelectedIndexChanged メソッドを使用すると、デリゲートを結び付けずに、派生クラスでイベントを処理することもできます。派生クラスでイベントを処理する場合は、この手法をお勧めします。
継承時の注意 派生クラスで OnSelectedIndexChanged をオーバーライドする場合は、登録されているデリゲートがイベントを受け取ることができるように、基本クラスの OnSelectedIndexChanged メソッドを呼び出してください。
SelectedIndexChanged イベントのハンドラを指定およびコーディングして、ユーザーの選択を表示する方法を次の例に示します。
<%@ Page Language="VB" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <script language="VB" runat="server"> Function CreateDataSource() As ICollection Dim dt As New DataTable() Dim dr As DataRow dt.Columns.Add(New DataColumn("IntegerValue", GetType(Int32))) dt.Columns.Add(New DataColumn("StringValue", GetType(String))) dt.Columns.Add(New DataColumn("DateTimeValue", GetType(DateTime))) dt.Columns.Add(New DataColumn("BoolValue", GetType(Boolean))) dt.Columns.Add(New DataColumn("CurrencyValue", GetType(Double))) Dim i As Integer For i = 0 To 8 dr = dt.NewRow() dr(0) = i dr(1) = "Item " + i.ToString() dr(2) = DateTime.Now If (i Mod 2) <> 0 Then dr(3) = True Else dr(3) = False End If dr(4) = 1.23 *(i + 1) dt.Rows.Add(dr) Next i Dim dv As New DataView(dt) Return dv End Function Sub Page_Load(sender As Object, e As EventArgs) If Not IsPostBack Then RadioButtonList1.DataSource = CreateDataSource() RadioButtonList1.DataTextField = "StringValue" RadioButtonList1.DataValueField = "CurrencyValue" RadioButtonList1.DataBind() End If End Sub Sub Index_Changed(sender As Object, e As EventArgs) Label1.Text = "You selected " & RadioButtonList1.SelectedItem.Text & _ " with a value of : " & RadioButtonList1.SelectedItem.Value & "." End Sub </script> <body> <form runat=server> <asp:RadioButtonList id="RadioButtonList1" OnSelectedIndexChanged="Index_Changed" AutoPostBack="true" runat="server"/> <br> <asp:Label id="Label1" runat="server"/> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <script language="C#" runat="server"> ICollection CreateDataSource() { DataTable dt = new DataTable(); DataRow dr; dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32))); dt.Columns.Add(new DataColumn("StringValue", typeof(string))); dt.Columns.Add(new DataColumn("DateTimeValue", typeof(DateTime))); dt.Columns.Add(new DataColumn("BoolValue", typeof(bool))); dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double))); for (int i = 0; i < 9; i++) { dr = dt.NewRow(); dr[0] = i; dr[1] = "Item " + i.ToString(); dr[2] = DateTime.Now; dr[3] = (i % 2 != 0) ? true : false; dr[4] = 1.23 * (i+1); dt.Rows.Add(dr); } DataView dv = new DataView(dt); return dv; } void Page_Load(Object sender, EventArgs e) { if (!IsPostBack) { RadioButtonList1.DataSource = CreateDataSource(); RadioButtonList1.DataTextField="StringValue"; RadioButtonList1.DataValueField="CurrencyValue"; RadioButtonList1.DataBind(); } } void Index_Changed(Object sender, EventArgs e) { Label1.Text = "You selected " + RadioButtonList1.SelectedItem.Text + " with a value of $" + RadioButtonList1.SelectedItem.Value + "."; } </script> <body> <form runat=server> <asp:RadioButtonList id="RadioButtonList1" OnSelectedIndexChanged="Index_Changed" AutoPostBack="true" runat="server"/> <br> <asp:Label id="Label1" runat="server"/> </form> </body> </html>
<%@ Page Language="JScript" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <script language="JSCRIPT" runat="server"> function CreateDataSource() : ICollection{ var dt : DataTable = new DataTable() var dr : DataRow dt.Columns.Add(new DataColumn("IntegerValue", System.Int32)) dt.Columns.Add(new DataColumn("StringValue", System.String)) dt.Columns.Add(new DataColumn("DateTimeValue", System.DateTime)) dt.Columns.Add(new DataColumn("BoolValue", System.Boolean)) dt.Columns.Add(new DataColumn("CurrencyValue", System.Double)) var i : int for( i = 0; i < 9; i++){ dr = dt.NewRow() dr("IntegerValue") = i dr("StringValue") = "Item " + i.ToString() dr("DateTimeValue") = DateTime.Now dr("BoolValue") = ((i % 2) != 0) ? true : false dr("CurrencyValue") = 1.23 *(i + 1) dt.Rows.Add(dr) } var dv : DataView = new DataView(dt) return dv } function Page_Load(sender : Object, e : EventArgs){ if(!IsPostBack){ RadioButtonList1.DataSource = CreateDataSource() RadioButtonList1.DataTextField = "StringValue" RadioButtonList1.DataValueField = "CurrencyValue" RadioButtonList1.DataBind() } } function Index_Changed(sender : Object, e : EventArgs){ Label1.Text = "You selected " + RadioButtonList1.SelectedItem.Text + " with a value of : " + RadioButtonList1.SelectedItem.Value + "." } </script> <body> <form runat=server> <asp:RadioButtonList id="RadioButtonList1" OnSelectedIndexChanged="Index_Changed" AutoPostBack="true" runat="server"/> <br> <asp:Label id="Label1" runat="server"/> </form> </body> </html>

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ListControl.OnSelectedIndexChanged メソッド
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)

Dim e As EventArgs Me.OnSelectedIndexChanged(e)

イベントが発生すると、デリゲートを使用してイベント ハンドラが呼び出されます。詳細については、「イベントの発生」を参照してください。
継承時の注意 派生クラスで OnSelectedIndexChanged をオーバーライドする場合は、登録されているデリゲートがイベントを受け取ることができるように、基本クラスの OnSelectedIndexChanged メソッドを呼び出してください。
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- ListControl.OnSelectedIndexChangedのページへのリンク