ListControl.SelectedIndex Property

Gets or sets the lowest ordinal index of the selected items in the list.

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

[BindableAttribute(true)]
[ThemeableAttribute(false)]
[BrowsableAttribute(false)]
public virtual int SelectedIndex { get; set; }
<asp:ListControl SelectedIndex="Int32" />

Property Value

Type: System.Int32
The lowest ordinal index of the selected items in the list. The default is -1, which indicates that nothing is selected.

ExceptionCondition
ArgumentOutOfRangeException

The index was set to less than -1, or greater than or equal to the number of items on the list at the time the list is rendered.

Use this property to determine the index of the currently selected item in the list if the list control allows only one selection. If the list control supports multiple selections, use this property to determine the lowest index of the selected items.

The value of the SelectedIndex property is not specifically saved on postback. It is restored on postback using the SelectedValue property. For example, if the SelectedValue property is 4, on postback, the SelectedIndex property is set to the index of the ListItem object that has a Value property of 4. If more than one ListItem object has a Value property of 4, the first item in the Items collection is selected.

This property cannot be set by themes or style sheet themes. For more information, see ThemeableAttribute and ASP.NET Themes and Skins.

TopicLocation
How to: Determine the Selection in List Web Server ControlsBuilding ASP .NET Web Applications
How to: Determine the Selection in List Web Server ControlsBuilding ASP .NET Web Applications
How to: Set the Selection in List Web Server Controls (Visual Studio)Building ASP .NET Web Applications in Visual Studio

The following example demonstrates how to use SelectedIndex to determine the lowest index of the selected items in the CheckBoxList.

<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
 <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) {
          CheckBoxList1.DataSource = CreateDataSource();
          CheckBoxList1.DataTextField="StringValue";
          CheckBoxList1.DataValueField="CurrencyValue";
          CheckBoxList1.DataBind();
       }
    }

    void Index_Changed(Object sender, EventArgs e) {

       Label1.Text = "The index of the first item selected is: " + 
                     CheckBoxList1.SelectedIndex.ToString(); 

    }

 </script>

 <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>

    <form id="form1" runat="server">

       <asp:CheckBoxList id="CheckBoxList1" 
            OnSelectedIndexChanged="Index_Changed"
            AutoPostBack="true"
            runat="server"/>

       <br />

       <asp:Label id="Label1" runat="server"/>

    </form>

 </body>
 </html>
 

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft