Export (0) Print
Expand All

ListView.SelectedIndexChanging Event

Occurs when an item's Select button is clicked, but before the ListView control handles the select operation.

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

public event EventHandler<ListViewSelectEventArgs> SelectedIndexChanging
<asp:ListView OnSelectedIndexChanging="EventHandler" />

The SelectedIndexChanging event is raised when an item's Select button is clicked, but before the ListView control handles the select operation. (A Select button is a button control whose CommandName property is set to "Select".) This enables you to perform a custom routine whenever this event occurs, such as canceling the select operation.

NoteNote

This event is not raised when you programmatically set the SelectedIndex property.

A ListViewSelectEventArgs object is passed to the event handler, which enables you to determine the index of the item that was selected by the user. It also lets you indicate that the selection operation should be canceled. To cancel the selection operation, set the Cancel property of the ListViewSelectEventArgs object to true.

For more information about how to handle events, see Consuming Events.

The following example shows how create an event handler for the SelectedIndexChanging event.


<%@ Page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

  void Page_Load()
  {
    Message.Text = String.Empty;
  }

  void ProductsListView_SelectedIndexChanging(Object sender, ListViewSelectEventArgs e)
  {
    ListViewItem item = (ListViewItem)ProductsListView.Items[e.NewSelectedIndex];
    Label l = (Label)item.FindControl("DiscontinuedDateLabel");

    if (String.IsNullOrEmpty(l.Text))
    {
      return;
    }

    DateTime discontinued = DateTime.Parse(l.Text);
    if (discontinued < DateTime.Now)
    {
      Message.Text = "You cannot select a discontinued item.";
      e.Cancel = true;
    }
  }

  protected void ProductsListView_PagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e)
  {
    // Clear selection.
    ProductsListView.SelectedIndex = -1;
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head id="Head1" runat="server">
    <title>ListView.SelectedIndexChanging Example</title>
  </head>
  <body>
    <form id="form1" runat="server">

      <h3>ListView.SelectedIndexChanging Example</h3>

      <asp:Label ID="Message"
        ForeColor="Red"          
        runat="server"/>
      <br/>

      <asp:ListView ID="ProductsListView" 
        DataSourceID="ProductsDataSource" 
        DataKeyNames="ProductID"
        OnSelectedIndexChanging="ProductsListView_SelectedIndexChanging"         
        OnPagePropertiesChanging="ProductsListView_PagePropertiesChanging"
        runat="server" >
        <LayoutTemplate>
          <table cellpadding="2" runat="server" id="tblProducts" width="640px">
            <tr runat="server" id="itemPlaceholder" />
          </table>
          <asp:DataPager runat="server" ID="ProductsDataPager" PageSize="12">
            <Fields>
              <asp:NextPreviousPagerField 
                ShowFirstPageButton="true" ShowLastPageButton="true"
                FirstPageText="|&lt;&lt; " LastPageText=" &gt;&gt;|"
                NextPageText=" &gt; " PreviousPageText=" &lt; " />
            </Fields>
          </asp:DataPager>
        </LayoutTemplate>
        <ItemTemplate>
          <tr runat="server">
            <td valign="top">
              <asp:LinkButton ID="SelectButton" runat="server" Text="..." CommandName="Select" />
            </td>
            <td valign="top">
              <asp:Label ID="NameLabel" runat="server" Text='<%#Eval("Name") %>' />
            </td>
            <td valign="top">
              <asp:Label ID="ProductNumberLabel" runat="server" Text='<%#Eval("ProductNumber") %>' />
            </td>
            <td>
              <asp:Label ID="DiscontinuedDateLabel" runat="server" Text='<%#Eval("DiscontinuedDate", "{0:d}") %>' />
            </td>
          </tr>
        </ItemTemplate>
        <SelectedItemTemplate>
          <tr runat="server" style="background-color:#ADD8E6">
            <td>&nbsp;</td>
            <td valign="top">
              <asp:Label ID="NameLabel" runat="server" Text='<%#Eval("Name") %>' />
            </td>
            <td valign="top">
              <asp:Label ID="ProductNumberLabel" runat="server" Text='<%#Eval("ProductNumber") %>' />
            </td>
            <td>
              <asp:Label ID="DiscontinuedDateLabel" runat="server" Text='<%#Eval("DiscontinuedDate", "{0:d}") %>' />
            </td>
          </tr>
        </SelectedItemTemplate>
      </asp:ListView>

      <asp:SqlDataSource ID="ProductsDataSource" runat="server" 
        ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
        SelectCommand="SELECT [ProductID], [Name], [ProductNumber], [DiscontinuedDate] 
          FROM Production.Product"
        UpdateCommand="UPDATE Production.Product
           SET Name = @Name, ProductNumber = @ProductNumber, DiscontinuedDate = @DiscontinuedDate
           WHERE ProductID = @ProductID">
      </asp:SqlDataSource>

    </form>
  </body>
</html>


.NET Framework

Supported in: 4, 3.5

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

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

Community Additions

ADD
Show:
© 2014 Microsoft