ListView.ItemCommand Gebeurtenis
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Treedt op wanneer op een knop in een ListView besturingselement wordt geklikt.
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)
Gebeurtenistype
Voorbeelden
In het volgende voorbeeld ziet u hoe u een ItemCommand gebeurtenis-handler maakt.
<%@ 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>
Opmerkingen
De ItemCommand gebeurtenis wordt gegenereerd wanneer op een knop in het ListView besturingselement wordt geklikt. Hiermee kunt u een aangepaste routine uitvoeren wanneer deze gebeurtenis plaatsvindt.
Knoppen in een ListView besturingselement kunnen ook ingebouwde functionaliteit van het besturingselement aanroepen. De volgende tabel bevat waarden die u kunt gebruiken met de CommandName eigenschap van een knop om ingebouwde functionaliteit aan te roepen.
| CommandName-waarde | Beschrijving |
|---|---|
| "Annuleren" | Hiermee annuleert u een bewerking voor bewerken of invoegen. Hiermee wordt de ItemCanceling gebeurtenis gegenereerd. |
| "Verwijderen" | Hiermee verwijdert u de huidige record uit de gegevensbron. Hiermee worden de ItemDeleted en ItemDeleting gebeurtenissen gegenereerd. |
| "Selecteren" | Hiermee stelt u de SelectedIndex eigenschap in op de DisplayIndex eigenschapswaarde voor het item. Hiermee wordt de SelectedItemTemplate sjabloon voor het item weergegeven. Hiermee worden de SelectedIndexChanging en SelectedIndexChanged gebeurtenissen gegenereerd. |
| "Bewerken" | Hiermee wordt het item in de bewerkingsmodus geplaatst. Hiermee wordt de EditItemTemplate sjabloon voor het item weergegeven. Hiermee wordt de ItemEditing gebeurtenis gegenereerd. |
| "Invoegen" | Hiermee voegt u de afhankelijke waarden van de InsertItemTemplate sjabloon in de gegevensbron in. Hiermee worden de ItemInserting en ItemInserted gebeurtenissen gegenereerd. |
| "Bijwerken" | Hiermee werkt u de huidige record in de gegevensbron bij met de afhankelijke waarden uit de EditItemTemplate sjabloon. Hiermee worden de ItemUpdating en ItemUpdated gebeurtenissen gegenereerd. |
| "Sorteren" | Hiermee sorteert u de kolommen die worden weergegeven in de CommandArgument eigenschap van de knop. Hiermee worden de Sorting en Sorted gebeurtenissen gegenereerd. |
De ItemCommand gebeurtenis wordt ook gegenereerd wanneer op een knop in de vorige tabel wordt geklikt. Het is echter raadzaam om de gebeurtenissen in de tabel te gebruiken. De ItemCommand gebeurtenis wordt meestal gebruikt voor het afhandelen van aangepaste bewerkingen.
Er wordt een ListViewCommandEventArgs object doorgegeven aan de gebeurtenis-handler, waarmee u de opdrachtnaam en het opdrachtargument kunt bepalen van de knop waarop is geklikt. Gebruik de CommandEventArgs.CommandName eigenschap om de opdrachtnaam te bepalen. Gebruik de CommandEventArgs.CommandArgument eigenschap om het opdrachtargument te bepalen. Gebruik de ListViewCommandEventArgs.CommandSource eigenschap om toegang te krijgen tot het besturingselement dat de gebeurtenis heeft gegenereerd.
Zie Gebeurtenissen verwerken en genereren voor meer informatie over het afhandelen van gebeurtenissen.