Freigeben über


ListView.ItemCommand Ereignis

Definition

Tritt auf, wenn auf eine Schaltfläche in einem ListView Steuerelement 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. Auf diese Weise können Sie immer dann eine benutzerdefinierte Routine ausführen, wenn dieses Ereignis eintritt.

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 aus ItemDeleting .
"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 aus SelectedIndexChanged .
"Bearbeiten" Platziert das Element im 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 aus ItemInserted .
"Aktualisieren" Aktualisiert den aktuellen Datensatz in der Datenquelle mit den gebundenen Werten aus der EditItemTemplate Vorlage. Löst die ItemUpdating Ereignisse aus ItemUpdated .
"Sortieren" Sortiert die spalten, die in der CommandArgument Eigenschaft der Schaltfläche aufgeführt sind. Löst die Sorting Ereignisse aus Sorted .

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 in der Regel zum Behandeln von benutzerdefinierten Vorgängen verwendet.

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

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

Gilt für:

Weitere Informationen