Freigeben über


ListControl.OnSelectedIndexChanged-Methode

Löst das SelectedIndexChanged-Ereignis aus. Dadurch können Sie einen benutzerdefinierten Handler für das Ereignis bereitstellen.

Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

Syntax

'Declaration
Protected Overridable Sub OnSelectedIndexChanged ( _
    e As EventArgs _
)
'Usage
Dim e As EventArgs

Me.OnSelectedIndexChanged(e)
protected virtual void OnSelectedIndexChanged (
    EventArgs e
)
protected:
virtual void OnSelectedIndexChanged (
    EventArgs^ e
)
protected void OnSelectedIndexChanged (
    EventArgs e
)
protected function OnSelectedIndexChanged (
    e : EventArgs
)

Parameter

Hinweise

Das SelectedIndexChanged-Ereignis wird ausgelöst, wenn die Auswahl im Listensteuerelement zwischen Übertragungen zum Server geändert wird.

Hinweis

Ein Listensteuerelement muss zwischen Übertragungen zum Server einige Werte beibehalten, wenn dieses Ereignis ordnungsgemäß arbeiten soll. Der Ansichtszustand für das Listensteuerelement muss aktiviert sein.

Durch das Auslösen eines Ereignisses wird der Ereignishandler über einen Delegaten aufgerufen. Weitere Informationen finden Sie unter Behandeln von Ereignissen.

Die OnSelectedIndexChanged-Methode ermöglicht es abgeleiteten Klassen auch, das Ereignis ohne Anfügen eines Delegaten zu behandeln. Dies ist das bevorzugte Verfahren für die Behandlung des Ereignisses in einer abgeleiteten Klasse.

Hinweise für Erben Beim Überschreiben von OnSelectedIndexChanged in einer abgeleiteten Klasse müssen Sie sicherstellen, dass die OnSelectedIndexChanged-Methode der Basisklasse aufgerufen wird, damit registrierte Delegaten das Ereignis empfangen.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie für das SelectedIndexChanged-Ereignis ein Handler angegeben und codiert wird, der die vom Benutzer getroffene Auswahl anzeigt.

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

Plattformen

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 unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

ListControl-Klasse
ListControl-Member
System.Web.UI.WebControls-Namespace
SelectedIndexChanged