Freigeben über


ListView.ItemCommand Ereignis

Definition

Tritt ein, wenn in einem ListView-Steuerelement auf eine Schaltfläche geklickt wird.

public:
 event EventHandler<System::Web::UI::WebControls::ListViewCommandEventArgs ^> ^ ItemCommand;
public event EventHandler<System.Web.UI.WebControls.ListViewCommandEventArgs> ItemCommand;
member this.ItemCommand : EventHandler<System.Web.UI.WebControls.ListViewCommandEventArgs> 
Public Custom Event ItemCommand As EventHandler(Of ListViewCommandEventArgs) 

Ereignistyp

Beispiele

Das folgende Beispiel zeigt, wie Sie einen ItemCommand Ereignishandler erstellen.

<%@ 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 xmlns="http://www.w3.org/1999/xhtml" >
<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>
<%@ 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 xmlns="http://www.w3.org/1999/xhtml" >
<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>

Hinweise

Das ItemCommand Ereignis wird ausgelöst, wenn auf eine Schaltfläche im ListView Steuerelement geklickt wird. Dadurch können Sie immer dann eine benutzerdefinierte Routine ausführen, wenn dieses Ereignis auftritt.

Schaltflächen in einem ListView Steuerelement können auch integrierte Funktionen des Steuerelements aufrufen. In der folgenden Tabelle sind Werte aufgeführt, die Sie mit der CommandName Eigenschaft einer Schaltfläche verwenden können, um integrierte Funktionen aufzurufen.

CommandName-Wert BESCHREIBUNG
"Abbrechen" Bricht einen Bearbeitungs- oder Einfügevorgang ab. Löst das ItemCanceling-Ereignis aus.
"Löschen" Löscht den aktuellen Datensatz aus der Datenquelle. Löst die ItemDeleted Ereignisse und ItemDeleting aus.
„Auswählen“ Legt die SelectedIndex -Eigenschaft auf den DisplayIndex Eigenschaftswert für das Element fest. Rendert die SelectedItemTemplate Vorlage für das Element. Löst die SelectedIndexChanging Ereignisse und SelectedIndexChanged aus.
"Bearbeiten" Versetzt das Element in den Bearbeitungsmodus. Rendert die EditItemTemplate Vorlage für das Element. Löst das ItemEditing-Ereignis aus.
"Einfügen" Fügt die gebundenen Werte aus der InsertItemTemplate Vorlage in die Datenquelle ein. Löst die ItemInserting Ereignisse und ItemInserted aus.
"Aktualisieren" Aktualisiert den aktuellen Datensatz in der Datenquelle mit den gebundenen Werten aus der EditItemTemplate Vorlage. Löst die ItemUpdating Ereignisse und ItemUpdated aus.
"Sortieren" Sortiert die In der CommandArgument -Eigenschaft der Schaltfläche aufgeführten Spalten. Löst die Sorting Ereignisse und Sorted aus.

Das ItemCommand Ereignis wird auch ausgelöst, wenn auf eine Schaltfläche geklickt wird, die in der vorherigen Tabelle aufgeführt ist. Es wird jedoch empfohlen, die in der Tabelle aufgeführten Ereignisse zu verwenden. Das ItemCommand Ereignis wird normalerweise verwendet, um benutzerdefinierte Vorgänge zu behandeln.

Ein ListViewCommandEventArgs -Objekt wird an den Ereignishandler übergeben, wodurch Sie den Befehlsnamen und das Befehlsargument der Schaltfläche bestimmen können, auf die geklickt wurde. Verwenden Sie die -Eigenschaft, um den CommandEventArgs.CommandName Befehlsnamen zu bestimmen. Verwenden Sie die -Eigenschaft, um das CommandEventArgs.CommandArgument Befehlsargument zu bestimmen. Verwenden Sie die -Eigenschaft, um auf das Steuerelement zuzugreifen, das das ListViewCommandEventArgs.CommandSource Ereignis ausgelöst hat.

Weitere Informationen zum Behandeln von Ereignissen finden Sie unter behandeln und Auslösen von Ereignissen.

Gilt für:

Weitere Informationen