Export (0) Print
Expand All

BaseDataList.SelectedIndexChanged Event

Occurs when a different item is selected in a data listing control between posts to the server.

[Visual Basic]
Public Event SelectedIndexChanged As EventHandler
[C#]
public event EventHandler SelectedIndexChanged;
[C++]
public: __event EventHandler* SelectedIndexChanged;

[JScript] In JScript, you can handle the events defined by a class, but you cannot define your own.

Event Data

The event handler receives an argument of type EventArgs.

Remarks

The SelectedIndexChanged event is raised when a different item is selected in a data listing control between posts to the server.

For more information about handling events, see Consuming Events.

Example

[Visual Basic] 

<%@ Page Language="VB" AutoEventWireup="True"%>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<html>

<head>

   <script runat="server">

      Function CreateDataSource() As ICollection 
      
         ' Create sample data for the DataGrid control.
         Dim dt As DataTable = New DataTable()
         Dim dr As DataRow
 
         ' Define the columns of the table.
         dt.Columns.Add(New DataColumn("IntegerValue", GetType(Integer)))
         dt.Columns.Add(New DataColumn("StringValue", GetType(String)))
         dt.Columns.Add(New DataColumn("CurrencyValue", GetType(Double)))

         ' Populate the table with sample values.
         Dim i As Integer

         For i = 0 to 8
      
            dr = dt.NewRow()
 
            dr(0) = i
            dr(1) = "Item " & i.ToString()
            dr(2) = 1.23 * (i + 1)
 
            dt.Rows.Add(dr)
         
         Next i
 
         ' Create a DataView from the DataTable.
         Dim dv As DataView = New DataView(dt)
         Return dv

      End Function
 
      Sub Page_Load(sender As Object, e As EventArgs) 
 
         ' Load sample data only once when the page is first loaded.
         If Not IsPostBack Then 
         
            ItemsGrid.DataSource = CreateDataSource()
            ItemsGrid.DataBind()
         
         End If

      End Sub

      Sub IndexChange_Command(sender As Object, e As EventArgs)
          
         ' Display the details of the selected item.
         DetailsLabel.Text = _
            "Item Number: " & ItemsGrid.SelectedItem.Cells(1).Text & "<br>" & _
            "Description: " & ItemsGrid.SelectedItem.Cells(2).Text & "<br>" & _
            "Price: $" & ItemsGrid.SelectedItem.Cells(3).Text & "<br>"

      End Sub

   </script>

</head>

<body>

   <form runat="server">

      <h3>Declarative BaseDataList SelectedIndexChanged Example</h3>

      Select an item: 

      <br><br>

      <asp:DataGrid id="ItemsGrid" 
           BorderColor="Black"
           ShowFooter="False" 
           CellPadding=3 
           CellSpacing="0"
           HeaderStyle-BackColor="#aaaadd"
           OnSelectedIndexChanged="IndexChange_Command"
           runat="server">

         <Columns>

            <asp:ButtonColumn Text="Select"
                 CommandName="Select"/>

         </Columns>

      </asp:DataGrid>

      <hr>

      <table border="1" bordercolor="black" cellspacing="0">

         <tr bgcolor="#aaaadd">

            <td>

               Details

            </td>

         </tr>

         <tr>

            <td>

               <asp:Label id="DetailsLabel"
                    runat="server"
                    Text="No item selected."/>

            </td>

         </tr>

      </table>

   </form>

</body>
</html>


[C#] 

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

<html>

<head>

   <script runat="server">

      ICollection CreateDataSource() 
      {
      
         // Create sample data for the DataGrid control.
         DataTable dt = new DataTable();
         DataRow dr;
 
         // Define the columns of the table.
         dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
         dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
         dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));

         // Populate the table with sample values.
         for (int i = 0; i < 9; i++) 
         {
            dr = dt.NewRow();
 
            dr[0] = i;
            dr[1] = "Item " + i.ToString();
            dr[2] = 1.23 * (i + 1);
 
            dt.Rows.Add(dr);
         }
 
         // Create a DataView from the DataTable.
         DataView dv = new DataView(dt);
         return dv;

      }
 
      void Page_Load(Object sender, EventArgs e) 
      {
 
         // Load sample data only once, when the page is first loaded.
         if (!IsPostBack) 
         {
            ItemsGrid.DataSource = CreateDataSource();
            ItemsGrid.DataBind();
         }

      }

      void IndexChange_Command(Object sender, EventArgs e)
      {
          
         // Display the details of the selected item.
         DetailsLabel.Text = 
            "Item Number: " + ItemsGrid.SelectedItem.Cells[1].Text + "<br>" +
            "Description: " + ItemsGrid.SelectedItem.Cells[2].Text + "<br>" +
            "Price: $" + ItemsGrid.SelectedItem.Cells[3].Text + "<br>";

      }

   </script>

</head>

<body>

   <form runat="server">

      <h3>Declarative BaseDataList SelectedIndexChanged Example</h3>

      Select an item: 

      <br><br>

      <asp:DataGrid id="ItemsGrid" 
           BorderColor="Black"
           ShowFooter="False" 
           CellPadding=3 
           CellSpacing="0"
           HeaderStyle-BackColor="#aaaadd"
           OnSelectedIndexChanged="IndexChange_Command"
           runat="server">

         <Columns>

            <asp:ButtonColumn Text="Select"
                 CommandName="Select"/>

         </Columns>

      </asp:DataGrid>

      <hr>

      <table border="1" bordercolor="black" cellspacing="0">

         <tr bgcolor="#aaaadd">

            <td>

               Details

            </td>

         </tr>

         <tr>

            <td>

               <asp:Label id="DetailsLabel"
                    runat="server"
                    Text="No item selected."/>

            </td>

         </tr>

      </table>

   </form>

</body>
</html>


[Visual Basic] 

<%@ Page Language="VB" AutoEventWireup="True"%>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<html>

<head>

   <script runat="server">

      Function CreateDataSource() As ICollection 
      
         ' Create sample data for the DataGrid control.
         Dim dt As DataTable = New DataTable()
         Dim dr As DataRow
 
         ' Define the columns of the table.
         dt.Columns.Add(New DataColumn("IntegerValue", GetType(Integer)))
         dt.Columns.Add(New DataColumn("StringValue", GetType(String)))
         dt.Columns.Add(New DataColumn("CurrencyValue", GetType(Double)))

         ' Populate the table with sample values.
         Dim i As Integer

         For i = 0 to 8
      
            dr = dt.NewRow()
 
            dr(0) = i
            dr(1) = "Item " & i.ToString()
            dr(2) = 1.23 * (i + 1)
 
            dt.Rows.Add(dr)
         
         Next i
 
         ' Create a DataView from the DataTable.
         Dim dv As DataView = New DataView(dt)
         Return dv

      End Function
 
      Sub Page_Load(sender As Object, e As EventArgs) 
 
         ' Load sample data only once, when the page is first loaded.
         If Not IsPostBack Then 
         
            ItemsGrid.DataSource = CreateDataSource()
            ItemsGrid.DataBind()
         
         End If

         ' Register event-handling methods.
         AddHandler ItemsGrid.SelectedIndexChanged, AddressOf IndexChange_Command
      End Sub

      Sub IndexChange_Command(sender As Object, e As EventArgs)
          
         ' Display the details of the selected item.
         DetailsLabel.Text = "Item Number: " & ItemsGrid.SelectedItem.Cells(1).Text & "<br>" & _
                             "Description: " & ItemsGrid.SelectedItem.Cells(2).Text & "<br>" & _
                             "Price: $" & ItemsGrid.SelectedItem.Cells(3).Text & "<br>"

      End Sub

   </script>

</head>

<body>

   <form runat="server">

      <h3>Programmatic BaseDataList SelectedIndexChanged Example</h3>

      Select an item: 

      <br><br>

      <asp:DataGrid id="ItemsGrid" 
           BorderColor="Black"
           ShowFooter="False" 
           CellPadding=3 
           CellSpacing="0"
           HeaderStyle-BackColor="#aaaadd"
           DataKeyField="IntegerValue"
           OnSelectedIndexChanged="IndexChange_Command"
           runat="server">

         <Columns>

            <asp:ButtonColumn Text="Select"
                 CommandName="Select"/>

         </Columns>

      </asp:DataGrid>

      <hr>

      <table border="1" bordercolor="black" cellspacing="0">

         <tr bgcolor="#aaaadd">

            <td>

               Details

            </td>

         </tr>

         <tr>

            <td>

               <asp:Label id="DetailsLabel"
                    runat="server"
                    Text="No item selected."/>

            </td>

         </tr>

      </table>

   </form>

</body>
</html>


[C#] 

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

<html>

<head>

   <script runat="server">

      ICollection CreateDataSource() 
      {
      
         // Create sample data for the DataGrid control.
         DataTable dt = new DataTable();
         DataRow dr;
 
         // Define the columns of the table.
         dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
         dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
         dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));

         // Populate the table with sample values.
         for (int i = 0; i < 9; i++) 
         {
            dr = dt.NewRow();
 
            dr[0] = i;
            dr[1] = "Item " + i.ToString();
            dr[2] = 1.23 * (i + 1);
 
            dt.Rows.Add(dr);
         }
 
         // Create a DataView from the DataTable.
         DataView dv = new DataView(dt);
         return dv;

      }

      void IndexChange_Command(Object sender, EventArgs e)
      {
          
         // Display the details of the selected item.
         DetailsLabel.Text = "Item Number: " + ItemsGrid.SelectedItem.Cells[1].Text + "<br>" +
                              "Description: " + ItemsGrid.SelectedItem.Cells[2].Text + "<br>" +
                              "Price: $" + ItemsGrid.SelectedItem.Cells[3].Text + "<br>";

      }
 
      void Page_Load(Object sender, EventArgs e) 
      {         
 
         // Load sample data only once, when the page is first loaded.
         if (!IsPostBack) 
         {
 
            // Load sample data.
            ItemsGrid.DataSource = CreateDataSource();
            ItemsGrid.DataBind();
            
         }

         // Register event-handling methods.
         ItemsGrid.SelectedIndexChanged += new EventHandler(this.IndexChange_Command);

      }

   </script>

</head>

<body>

   <form runat="server">

      <h3>Programmatic BaseDataList SelectedIndexChanged Example</h3>

      Select an item: 

      <br><br>

      <asp:DataGrid id="ItemsGrid" 
           BorderColor="Black"
           ShowFooter="False" 
           CellPadding=3 
           CellSpacing="0"
           HeaderStyle-BackColor="#aaaadd"
           runat="server">

         <Columns>

            <asp:ButtonColumn Text="Select"
                 CommandName="Select"/>

         </Columns>

      </asp:DataGrid>

      <hr>

      <table border="1" bordercolor="black" cellspacing="0">

         <tr bgcolor="#aaaadd">

            <td>

               Details

            </td>

         </tr>

         <tr>

            <td>

               <asp:Label id="DetailsLabel"
                    runat="server"
                    Text="No item selected."/>

            </td>

         </tr>

      </table>

   </form>

</body>
</html>

[C++, JScript] No example is available for C++ or JScript. To view a Visual Basic or C# example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Platforms: Windows 2000, Windows XP Professional, Windows Server 2003 family

See Also

BaseDataList Class | BaseDataList Members | System.Web.UI.WebControls Namespace | OnSelectedIndexChanged | System.EventHandler

Show:
© 2014 Microsoft