Evaluar y enviar comentarios
Contraer todo/Expandir todo Contraer todo
Biblioteca de clases de .NET Framework
ListView..::.ItemCommand (Evento)

Actualización: noviembre 2007

Se produce cuando se hace clic en un botón de un control ListView.

Espacio de nombres:  System.Web.UI.WebControls
Ensamblado:  System.Web.Extensions (en System.Web.Extensions.dll)
Visual Basic (Declaración)
Public Event ItemCommand As EventHandler(Of ListViewCommandEventArgs)
Visual Basic (Uso)
Dim instance As ListView
Dim handler As EventHandler(Of ListViewCommandEventArgs)

AddHandler instance.ItemCommand, handler
C#
public event EventHandler<ListViewCommandEventArgs> ItemCommand
Visual C++
public:
 event EventHandler<ListViewCommandEventArgs^>^ ItemCommand {
    void add (EventHandler<ListViewCommandEventArgs^>^ value);
    void remove (EventHandler<ListViewCommandEventArgs^>^ value);
}
J#
/** @event */
public void add_ItemCommand (EventHandler<ListViewCommandEventArgs> value)
/** @event */
public void remove_ItemCommand (EventHandler<ListViewCommandEventArgs> value)
JScript
JScript no admite eventos.
ASP.NET
<asp:ListView OnItemCommand="EventHandler" />

El evento ItemCommand se inicia cuando se hace clic en un botón del control ListView. De esta manera, se puede ejecutar una rutina personalizada cada vez que se provoca este evento.

Los botones de un control ListView también pueden invocar las funciones integradas del control. En la tabla siguiente se muestran los valores que puede utilizar con la propiedad CommandName de un botón para invocar las funciones integradas.

Valor de CommandName

Description

"Cancel"

Cancela una operación de edición o de inserción. Provoca el evento ItemCanceling.

"Delete"

Elimina el registro actual del origen de datos. Provoca los eventos ItemDeleted y ItemDeleting.

"Select"

Establece la propiedad SelectedIndex en el valor de la propiedad DisplayIndex para el elemento. Representa la plantilla SelectedItemTemplate para el elemento. Provoca los eventos SelectedIndexChanging y SelectedIndexChanged.

"Edit"

Pone el elemento en modo de edición. Representa la plantilla EditItemTemplate para el elemento. Provoca el evento ItemEditing.

"Insert"

Inserta los valores enlazados de la plantilla InsertItemTemplate en el origen de datos. Provoca los eventos ItemInserting y ItemInserted.

"Update"

Actualiza el registro actual del origen de datos con los valores enlazados de la plantilla EditItemTemplate. Provoca los eventos ItemUpdating y ItemUpdated.

"Sort"

Ordena las columnas que se muestran en la propiedad CommandArgument del botón. Provoca los eventos Sorting y Sorted.

El evento ItemCommand también se provoca cuando se hace clic en uno de los botones mostrados en la tabla anterior. Sin embargo, es recomendable que utilice los eventos que se indican en la tabla. Normalmente, el evento ItemCommand se utiliza para administrar operaciones personalizadas.

Se pasa un objeto ListViewCommandEventArgs al controlador de eventos, lo que le permite determinar el nombre de comando y el argumento de comando del botón en el que se ha hecho clic. Para determinar el nombre del comando, utilice la propiedad CommandEventArgs..::.CommandName. Para determinar el argumento del comando, utilice la propiedad CommandEventArgs..::.CommandArgument. Para obtener acceso al control que provocó el evento, utilice la propiedad ListViewCommandEventArgs..::.CommandSource.

Para obtener más información sobre el control de eventos, vea Utilizar eventos.

En el ejemplo siguiente se muestra cómo crear un controlador de eventos ItemCommand.

Visual Basic
<%@ Page language="VB" %>

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

<script runat="server">
  Protected Sub EmployeesListView_OnItemCommand(ByVal sender As Object, _
  ByVal e As ListViewCommandEventArgs)

    If String.Equals(e.CommandName, "AddToList") Then

      ' Verify that the employee ID is not already in the list. If not, add the
      ' employee to the list.
      Dim dataItem As ListViewDataItem = CType(e.Item, ListViewDataItem)
      Dim employeeID As String = _
        EmployeesListView.DataKeys(dataItem.DisplayIndex).Value.ToString()

      If SelectedEmployeesListBox.Items.FindByValue(employeeID) Is Nothing Then
        Dim item As ListItem = _
          New ListItem(e.CommandArgument.ToString(), employeeID)
        SelectedEmployeesListBox.Items.Add(item)
      End If

    End If

  End Sub
</script>

<html  >
<head id="Head2" runat="server">
    <title>Employee List</title>
  </head>
  <body>
    <form id="form1" runat="server">
      <asp:ListView runat="server" 
        ID="EmployeesListView"
        OnItemCommand="EmployeesListView_OnItemCommand"
        DataSourceID="EmployeesDataSource" 
        DataKeyNames="EmployeeID">
        <LayoutTemplate>
          <table runat="server" id="tblEmployees" 
                 cellspacing="0" cellpadding="1" width="440px" border="1">
            <tr id="itemPlaceholder" runat="server"></tr>
          </table>
          <asp:DataPager ID="EmployeesDataPager" runat="server" PageSize="10">
            <Fields>
              <asp:NumericPagerField />
            </Fields>
          </asp:DataPager>
        </LayoutTemplate>
        <ItemTemplate>
          <tr runat="server">
            <td>
              <asp:Label runat="server" ID="NameLabel" 
                Text='<%#Eval("LastName") & ", " & Eval("FirstName") %>' />
            </td>
            <td style="width:80px">
              <asp:LinkButton runat="server" 
                ID="SelectEmployeeButton" 
                Text="Add To List" 
                CommandName="AddToList" 
                CommandArgument='<%#Eval("LastName") & ", " & Eval("FirstName") %>' />
            </td>
          </tr>
        </ItemTemplate>
      </asp:ListView>

      <br /><br />
      <b>Selected Employees:</b><br />
      <asp:ListBox runat="server" ID="SelectedEmployeesListBox" Rows="10" Width="300px" />

      <!-- This example uses Microsoft SQL Server and connects      -->
      <!-- to the AdventureWorks sample database. Use an ASP.NET    -->
      <!-- expression to retrieve the connection string value       -->
      <!-- from the Web.config file.                                -->       
      <asp:SqlDataSource ID="EmployeesDataSource" runat="server" 
        ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
        SelectCommand="SELECT [EmployeeID], [FirstName], [LastName]
                       FROM HumanResources.vEmployee
                       ORDER BY [LastName], [FirstName], [EmployeeID]">
      </asp:SqlDataSource>
    </form>
  </body>
</html>
C#
<%@ 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">
  protected void EmployeesListView_OnItemCommand(object sender, ListViewCommandEventArgs e)
  {
    if (String.Equals(e.CommandName, "AddToList"))
    {
      // Verify that the employee ID is not already in the list. If not, add the
      // employee to the list.
      ListViewDataItem dataItem = (ListViewDataItem)e.Item;
      string employeeID = 
        EmployeesListView.DataKeys[dataItem.DisplayIndex].Value.ToString();

      if (SelectedEmployeesListBox.Items.FindByValue(employeeID) == null)
      {
        ListItem item = new ListItem(e.CommandArgument.ToString(), employeeID);
        SelectedEmployeesListBox.Items.Add(item);
      }
    }
  }
</script>

<html  >
<head id="Head1" runat="server">
    <title>Employee List</title>
  </head>
  <body>
    <form id="form1" runat="server">
      <asp:ListView runat="server" 
        ID="EmployeesListView"
        OnItemCommand="EmployeesListView_OnItemCommand"
        DataSourceID="EmployeesDataSource" 
        DataKeyNames="EmployeeID">
        <LayoutTemplate>
          <table runat="server" id="tblEmployees" 
                 cellspacing="0" cellpadding="1" width="440px" border="1">
            <tr id="itemPlaceholder" runat="server"></tr>
          </table>
          <asp:DataPager ID="EmployeesDataPager" runat="server" PageSize="10">
            <Fields>
              <asp:NumericPagerField />
            </Fields>
          </asp:DataPager>
        </LayoutTemplate>
        <ItemTemplate>
          <tr runat="server">
            <td>
              <asp:Label runat="server" ID="NameLabel" 
                Text='<%#Eval("LastName") + ", " + Eval("FirstName") %>' />
            </td>
            <td style="width:80px">
              <asp:LinkButton runat="server" 
                ID="SelectEmployeeButton" 
                Text="Add To List" 
                CommandName="AddToList" 
                CommandArgument='<%#Eval("LastName") + ", " + Eval("FirstName") %>' />
            </td>
          </tr>
        </ItemTemplate>
      </asp:ListView>

      <br /><br />
      <b>Selected Employees:</b><br />
      <asp:ListBox runat="server" ID="SelectedEmployeesListBox" Rows="10" Width="300px" />

      <!-- This example uses Microsoft SQL Server and connects      -->
      <!-- to the AdventureWorks sample database. Use an ASP.NET    -->
      <!-- expression to retrieve the connection string value       -->
      <!-- from the Web.config file.                                -->       
      <asp:SqlDataSource ID="EmployeesDataSource" runat="server" 
        ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
        SelectCommand="SELECT [EmployeeID], [FirstName], [LastName]
                       FROM HumanResources.vEmployee
                       ORDER BY [LastName], [FirstName], [EmployeeID]">
      </asp:SqlDataSource>
    </form>
  </body>
</html>

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5
Contenido de la comunidad   ¿Qué es Community Content?
Agregar contenido nuevo RSS  Anotaciones
Processing
© 2009 Microsoft Corporation. Reservados todos los derechos. Términos de uso | Marcas Registradas | Privacidad
Page view tracker