ListView.ItemCommand Olay
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Denetimdeki ListView bir düğmeye tıklandığında gerçekleşir.
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)
Olay Türü
Örnekler
Aşağıdaki örnekte bir ItemCommand olay işleyicisinin nasıl oluşturulacağı gösterilmektedir.
<%@ 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>
Açıklamalar
Denetimdeki ItemCommandListView bir düğmeye tıklandığında olay oluşturulur. Bu, bu olay gerçekleştiğinde özel bir yordam gerçekleştirmenizi sağlar.
Denetimdeki ListView düğmeler, denetimin yerleşik işlevselliğini de çağırabilir. Aşağıdaki tabloda, yerleşik işlevselliği çağırmak için bir düğmenin özelliğiyle CommandName kullanabileceğiniz değerler listelenir.
| CommandName değeri | Açıklama |
|---|---|
| "İptal" | Düzenleme veya ekleme işlemini iptal eder. Olayı tetikler ItemCanceling . |
| "Sil" | Geçerli kaydı veri kaynağından siler. ve ItemDeleting olaylarını ItemDeleted oluşturur. |
| "Seç" | özelliğiDisplayIndex, SelectedIndex öğenin özellik değerine ayarlar. SelectedItemTemplate Öğe için şablonu işler. ve SelectedIndexChanged olaylarını SelectedIndexChanging oluşturur. |
| "Düzenle" | Öğeyi düzenleme moduna alır. EditItemTemplate Öğe için şablonu işler. Olayı tetikler ItemEditing . |
| "Ekle" | Şablondaki InsertItemTemplate ilişkili değerleri veri kaynağına ekler. ve ItemInserted olaylarını ItemInserting oluşturur. |
| "Güncelleştir" | Veri kaynağındaki geçerli kaydı şablondaki EditItemTemplate ilişkili değerlerle güncelleştirir. ve ItemUpdated olaylarını ItemUpdating oluşturur. |
| "Sırala" | Düğmenin özelliğinde CommandArgument listelenen sütunları sıralar. ve Sorted olaylarını Sorting oluşturur. |
Olay ItemCommand , önceki tabloda listelenen bir düğmeye tıklandığında da tetikleniyor. Ancak, tabloda listelenen olayları kullanmanız önerilir. Olay ItemCommand genellikle özel işlemleri işlemek için kullanılır.
Olay ListViewCommandEventArgs işleyicisine bir nesne geçirilir ve bu sayede tıklanan düğmenin komut adını ve komut bağımsız değişkenini belirleyebilirsiniz. Komut adını belirlemek için özelliğini kullanın CommandEventArgs.CommandName . Komut bağımsız değişkenini belirlemek için özelliğini kullanın CommandEventArgs.CommandArgument . Olayı tetikleyen denetime erişmek için özelliğini kullanın ListViewCommandEventArgs.CommandSource .
Olayları işleme hakkında daha fazla bilgi için bkz. Olayları İşleme ve Oluşturma.