ListView.ItemCanceling 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.
İptal işlemi istendiğinde, ancak denetim ekleme veya düzenleme işlemini iptal etmeden önce ListView gerçekleşir.
public:
event EventHandler<System::Web::UI::WebControls::ListViewCancelEventArgs ^> ^ ItemCanceling;
public event EventHandler<System.Web.UI.WebControls.ListViewCancelEventArgs> ItemCanceling;
member this.ItemCanceling : EventHandler<System.Web.UI.WebControls.ListViewCancelEventArgs>
Public Custom Event ItemCanceling As EventHandler(Of ListViewCancelEventArgs)
Olay Türü
Örnekler
Aşağıdaki örnekte bir ItemCanceling olay işleyicisinin nasıl oluşturulacağı gösterilmektedir.
Önemli
Bu örnek, olası bir güvenlik tehdidi olan kullanıcı girişini kabul eden metin kutuları içerir. Varsayılan olarak, ASP.NET Web sayfaları kullanıcı girişinin betik veya HTML öğeleri içermediğini doğrular. Daha fazla bilgi için bkz . Betik Açıklarına Genel Bakış.
<%@ 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">
void Page_Load()
{
Message.Text = String.Empty;
}
// <Snippet2>
protected void ContactsListView_ItemCanceling(object sender, ListViewCancelEventArgs e)
{
//Check the operation that raised the event
if (e.CancelMode == ListViewCancelMode.CancelingEdit)
{
// The update operation was canceled. Display the
// primary key of the item.
Message.Text = "Update for the ContactID " +
ContactsListView.DataKeys[e.ItemIndex].Value.ToString() + " canceled.";
}
else
{
Message.Text = "Insert operation canceled.";
}
}
// </Snippet2>
protected void ContactsListView_PagePropertiesChanging(object sender,
PagePropertiesChangingEventArgs e)
{
// Clears the edit index selection when paging.
ContactsListView.EditIndex = -1;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ListView ItemCanceling Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>ListView ItemCanceling Example</h3>
<asp:Label ID="Message"
ForeColor="Red"
runat="server"/>
<br/>
<asp:ListView ID="ContactsListView"
DataSourceID="ContactsDataSource"
DataKeyNames="ContactID"
ConvertEmptyStringToNull="true"
InsertItemPosition="LastItem"
runat="server"
OnItemCanceling="ContactsListView_ItemCanceling"
OnPagePropertiesChanging="ContactsListView_PagePropertiesChanging" >
<LayoutTemplate>
<table cellpadding="2" width="680px" border="1" runat="server" id="tblContacts">
<tr runat="server">
<th runat="server"> </th>
<th runat="server">ID</th>
<th runat="server">First Name</th>
<th runat="server">Last Name</th>
<th runat="server">Email Address</th>
</tr>
<tr runat="server" id="itemPlaceholder" />
</table>
<asp:DataPager runat="server" ID="ContactsDataPager" PageSize="12">
<Fields>
<asp:NextPreviousPagerField
ShowFirstPageButton="true" ShowLastPageButton="true"
FirstPageText="|<< " LastPageText=" >>|"
NextPageText=" > " PreviousPageText=" < " />
</Fields>
</asp:DataPager>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server">
<td valign="top">
<asp:LinkButton ID="EditButton" runat="server" Text="Edit" CommandName="Edit" /><br />
</td>
<td valign="top">
<asp:Label ID="Label1" runat="server" Text='<%#Eval("ContactID") %>' />
</td>
<td valign="top">
<asp:Label ID="FirstNameLabel" runat="server" Text='<%#Eval("FirstName") %>' />
</td>
<td valign="top">
<asp:Label ID="LastNameLabel" runat="server" Text='<%#Eval("LastName") %>' />
</td>
<td valign="top">
<asp:Label ID="EmailAddressLabel" runat="server" Text='<%#Eval("EmailAddress") %>' />
</td>
</tr>
</ItemTemplate>
<EditItemTemplate>
<tr style="background-color: #ADD8E6">
<td valign="top">
<asp:LinkButton ID="UpdateButton" runat="server" CommandName="Update" Text="Update" /><br />
<asp:LinkButton ID="CancelEditButton" runat="server" CommandName="Cancel" Text="Cancel" />
</td>
<td>
<asp:Label ID="Label1" runat="server" Text='<%#Eval("ContactID") %>' />
</td>
<td>
<asp:TextBox ID="FirstNameTextBox" runat="server"
Text='<%#Bind("FirstName") %>' MaxLength="50" /><br />
</td>
<td>
<asp:TextBox ID="LastNameTextBox" runat="server"
Text='<%#Bind("LastName") %>' MaxLength="50" /><br />
</td>
<td>
<asp:TextBox ID="EmailAddressTextBox" runat="server"
Text='<%#Bind("EmailAddress") %>' MaxLength="50" /><br />
</td>
</tr>
</EditItemTemplate>
<InsertItemTemplate>
<tr style="background-color:#90EE90">
<td colspan="2">
<asp:LinkButton ID="InsertButton" runat="server" CommandName="Insert" Text="Insert" /><br />
<asp:LinkButton ID="CancelInsertButton" runat="server" CommandName="Cancel" Text="Cancel" />
</td>
<td>
<asp:TextBox ID="FirstNameITextBox" runat="server"
Text='<%#Bind("FirstName") %>' MaxLength="50" />
</td>
<td>
<asp:TextBox ID="LastNameITextBox" runat="server"
Text='<%#Bind("LastName") %>' MaxLength="50" />
</td>
<td>
<asp:TextBox ID="EmailAddressITextBox" runat="server"
Text='<%#Bind("EmailAddress") %>' MaxLength="50" />
</td>
</tr>
</InsertItemTemplate>
</asp:ListView>
<!-- 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="ContactsDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT [ContactID], [FirstName], [LastName], [EmailAddress] FROM Person.Contact"
InsertCommand="INSERT INTO Person.Contact
([FirstName], [LastName], [EmailAddress], [PasswordHash], [PasswordSalt])
Values(@FirstName, @LastName, @EmailAddress, '', '')"
UpdateCommand="UPDATE Person.Contact
SET FirstName = @FirstName, LastName = @LastName,
EmailAddress = @EmailAddress
WHERE ContactID = @ContactID">
</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">
Sub Page_Load()
Message.Text = String.Empty
End Sub
' <Snippet2>
Protected Sub ContactsListView_ItemCanceling(ByVal sender As Object, _
ByVal e As ListViewCancelEventArgs)
'Check the operation that raised the event
If (e.CancelMode = ListViewCancelMode.CancelingEdit) Then
' The update operation was canceled. Display the
' primary key of the item.
Message.Text = "Update for the ContactID " & _
ContactsListView.DataKeys(e.ItemIndex).Value.ToString() & " canceled."
Else
Message.Text = "Insert operation canceled."
End If
End Sub
' </Snippet2>
Protected Sub ContactsListView_PagePropertiesChanging(ByVal sender As Object, _
ByVal e As PagePropertiesChangingEventArgs)
' Clears the edit index selection when paging.
ContactsListView.EditIndex = -1
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ListView ItemCanceling Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>ListView ItemCanceling Example</h3>
<asp:Label ID="Message"
ForeColor="Red"
runat="server"/>
<br/>
<asp:ListView ID="ContactsListView"
DataSourceID="ContactsDataSource"
DataKeyNames="ContactID"
ConvertEmptyStringToNull="true"
InsertItemPosition="LastItem"
runat="server"
OnItemCanceling="ContactsListView_ItemCanceling"
OnPagePropertiesChanging="ContactsListView_PagePropertiesChanging" >
<LayoutTemplate>
<table cellpadding="2" width="680px" border="1" runat="server" id="tblContacts">
<tr runat="server">
<th runat="server"> </th>
<th runat="server">ID</th>
<th runat="server">First Name</th>
<th runat="server">Last Name</th>
<th runat="server">Email Address</th>
</tr>
<tr runat="server" id="itemPlaceholder" />
</table>
<asp:DataPager runat="server" ID="ContactsDataPager" PageSize="12">
<Fields>
<asp:NextPreviousPagerField
ShowFirstPageButton="true" ShowLastPageButton="true"
FirstPageText="|<< " LastPageText=" >>|"
NextPageText=" > " PreviousPageText=" < " />
</Fields>
</asp:DataPager>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server">
<td valign="top">
<asp:LinkButton ID="EditButton" runat="server" Text="Edit" CommandName="Edit" /><br />
</td>
<td valign="top">
<asp:Label ID="Label1" runat="server" Text='<%#Eval("ContactID") %>' />
</td>
<td valign="top">
<asp:Label ID="FirstNameLabel" runat="server" Text='<%#Eval("FirstName") %>' />
</td>
<td valign="top">
<asp:Label ID="LastNameLabel" runat="server" Text='<%#Eval("LastName") %>' />
</td>
<td valign="top">
<asp:Label ID="EmailAddressLabel" runat="server" Text='<%#Eval("EmailAddress") %>' />
</td>
</tr>
</ItemTemplate>
<EditItemTemplate>
<tr style="background-color: #ADD8E6">
<td valign="top">
<asp:LinkButton ID="UpdateButton" runat="server" CommandName="Update" Text="Update" /><br />
<asp:LinkButton ID="CancelEditButton" runat="server" CommandName="Cancel" Text="Cancel" />
</td>
<td>
<asp:Label ID="Label1" runat="server" Text='<%#Eval("ContactID") %>' />
</td>
<td>
<asp:TextBox ID="FirstNameTextBox" runat="server"
Text='<%#Bind("FirstName") %>' MaxLength="50" /><br />
</td>
<td>
<asp:TextBox ID="LastNameTextBox" runat="server"
Text='<%#Bind("LastName") %>' MaxLength="50" /><br />
</td>
<td>
<asp:TextBox ID="EmailAddressTextBox" runat="server"
Text='<%#Bind("EmailAddress") %>' MaxLength="50" /><br />
</td>
</tr>
</EditItemTemplate>
<InsertItemTemplate>
<tr style="background-color:#90EE90">
<td colspan="2">
<asp:LinkButton ID="InsertButton" runat="server" CommandName="Insert" Text="Insert" /><br />
<asp:LinkButton ID="CancelInsertButton" runat="server" CommandName="Cancel" Text="Cancel" />
</td>
<td>
<asp:TextBox ID="FirstNameITextBox" runat="server"
Text='<%#Bind("FirstName") %>' MaxLength="50" />
</td>
<td>
<asp:TextBox ID="LastNameITextBox" runat="server"
Text='<%#Bind("LastName") %>' MaxLength="50" />
</td>
<td>
<asp:TextBox ID="EmailAddressITextBox" runat="server"
Text='<%#Bind("EmailAddress") %>' MaxLength="50" />
</td>
</tr>
</InsertItemTemplate>
</asp:ListView>
<!-- 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="ContactsDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT [ContactID], [FirstName], [LastName], [EmailAddress] FROM Person.Contact"
InsertCommand="INSERT INTO Person.Contact
([FirstName], [LastName], [EmailAddress], [PasswordHash], [PasswordSalt])
Values(@FirstName, @LastName, @EmailAddress, '', '')"
UpdateCommand="UPDATE Person.Contact
SET FirstName = @FirstName, LastName = @LastName,
EmailAddress = @EmailAddress
WHERE ContactID = @ContactID">
</asp:SqlDataSource>
</form>
</body>
</html>
Açıklamalar
DenetimListView, veya EditItemTemplate şablonundaki InsertItemTemplate bir İptal düğmesine tıklandığında, ancak denetim ekleme veya düzenleme işlemini iptal etmeden önce ListView olayı tetiklerItemCanceling. (İptal düğmesi, özelliği "İptal" olarak ayarlanmış bir düğme denetimidir CommandName .) Bu, bu olay gerçekleştiğinde öğeyi istenmeyen bir duruma sokacaksa iptal işlemini durdurma gibi özel bir yordam gerçekleştirmenizi sağlar.
Nesne ListViewCancelEventArgs , öğenin dizinini belirlemenize olanak tanıyan olay işleyicisine geçirilir. Ayrıca iptal işleminin durdurulması gerektiğini belirtmenizi sağlar. İşlemi durdurmak için nesnesinin CancelListViewCancelEventArgs özelliğini olarak true
ayarlayın.
Olayları işleme hakkında daha fazla bilgi için bkz. Olayları İşleme ve Oluşturma.