DataGrid.SelectedIndex Property

 

Gets or sets the index of the selected item in the DataGrid control.

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

<BindableAttribute(True)>
Public Overridable Property SelectedIndex As Integer

Property Value

Type: System.Int32

The index of the selected item in the DataGrid control.

Exception Condition
ArgumentOutOfRangeException

The specified index is less than -1.

Use the SelectedIndex property to determine the index of the item selected by the user in the DataGrid control. You can also use this property to programmatically specify which item is selected in the DataGrid control.

To deselect an item in the DataGrid control, set this property to -1.

The following code example demonstrates how to use the SelectedIndex property to determine the index number of the selected item in the DataGrid control. It also shows how to select and deselect an item programmatically.

<%@ Page Language="VB" 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="VB" runat="server">

        Dim Cart As New DataTable
        Dim CartView As DataView

        Sub Page_Load(sender As Object, e As EventArgs)
            Dim dr As DataRow

            If Session("ShoppingCart") Is Nothing Then
                Cart.Columns.Add(New DataColumn("Qty", GetType(String)))
                Cart.Columns.Add(New DataColumn("Item", GetType(String)))
                Cart.Columns.Add(New DataColumn("Price", GetType(String)))
                Session("ShoppingCart") = Cart

                ' Create rows and add sample data.
                Dim i As Integer
                For i = 1 To 9
                    dr = Cart.NewRow()
                    If i Mod 2 <> 0 Then
                        dr(0) = "2"
                    Else
                        dr(0) = "1"
                    End If
                    dr(1) = "Item " & i.ToString()
                    dr(2) =(1.23 *(i + 1)).ToString()
                    Cart.Rows.Add(dr)
                Next i
            Else
                Cart = CType(Session("ShoppingCart"), DataTable)
            End If 
            CartView = New DataView(Cart)
            CartView.Sort = "Item"

            If Not IsPostBack Then
                BindGrid()
            End If
        End Sub 'Page_Load

        Sub MyDataGrid_Select(sender As Object, e As EventArgs)

            Label1.Text = "You selected " & MyDataGrid.SelectedItem.Cells(1).Text & _
                ".<br />" & MyDataGrid.SelectedItem.Cells(1).Text & " has an index number of " & _
                MyDataGrid.SelectedIndex.ToString() & "."
        End Sub 'MyDataGrid_Select

        Sub Select_Button_Click(sender As Object, e As EventArgs)

            MyDataGrid.SelectedIndex = 4
        End Sub 'Select_Button_Click

        Sub UnSelect_Button_Click(sender As Object, e As EventArgs)

            MyDataGrid.SelectedIndex = - 1
            Label1.Text = ""
        End Sub 'UnSelect_Button_Click

        Sub BindGrid()
            MyDataGrid.DataSource = CartView
            MyDataGrid.DataBind()
        End Sub 'BindGrid

   </script>

<head runat="server">
    <title>DataGrid Selection Example</title>
</head>
<body>

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

      <h3>DataGrid Selection Example</h3>

      <asp:DataGrid id="MyDataGrid" runat="server"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           Font-Names="Verdana"
           Font-Size="8pt"
           OnSelectedIndexChanged="MyDataGrid_Select"
           AutoGenerateColumns="false">

         <HeaderStyle BackColor="#aaaadd">
         </HeaderStyle>

         <SelectedItemStyle BackColor="Yellow">
         </SelectedItemStyle>

         <Columns>

            <asp:ButtonColumn
                 HeaderText="Select Item"
                 ButtonType="LinkButton"
                 Text="Select"
                 CommandName="Select">

            </asp:ButtonColumn>

            <asp:BoundColumn 
                 HeaderText="Item" 
                 ReadOnly="true" 
                 DataField="Item"/>

            <asp:BoundColumn 
                 HeaderText="Quantity" 
                 DataField="Qty"/>

            <asp:BoundColumn 
                 HeaderText="Price" 
                 DataField="Price"/>

         </Columns>

      </asp:DataGrid>

      <br /><br />

      <asp:Button id="Button1"
           Text="Select Item 5"
           OnClick="Select_Button_Click"
           runat="server"/>

      <asp:Button id="Button2"
           Text="Unselect Item"
           OnClick="UnSelect_Button_Click"
           runat="server"/>

      <br /><br />

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

   </form>

</body>
</html>

.NET Framework
Available since 1.1
Return to top
Show: