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
Olay ItemCommand , denetimdeki bir düğmeye ListView tıklandığında 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 | Description |
---|---|
"İ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ç" | SelectedIndex Özelliği DisplayIndex öğenin özellik değerine ayarlar. Öğe için şablonu işler SelectedItemTemplate . ve SelectedIndexChanged olaylarını SelectedIndexChanging oluşturur. |
"Düzenle" | Öğeyi düzenleme moduna alır. Öğe için şablonu işler EditItemTemplate . Olayı tetikler ItemEditing . |
"Ekle" | İlişkili değerleri şablondan InsertItemTemplate 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 da tıklanan düğmenin komut adını ve komut bağımsız değişkenini belirlemenizi sağlar. 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.