DetailsView.ItemDeleting Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Ocorre quando se clica em um botão Excluir em um controle DetailsView, mas antes da operação de exclusão.
public:
event System::Web::UI::WebControls::DetailsViewDeleteEventHandler ^ ItemDeleting;
public event System.Web.UI.WebControls.DetailsViewDeleteEventHandler ItemDeleting;
member this.ItemDeleting : System.Web.UI.WebControls.DetailsViewDeleteEventHandler
Public Custom Event ItemDeleting As DetailsViewDeleteEventHandler
Tipo de evento
Exemplos
O exemplo de código a seguir demonstra como usar o ItemDeleting evento para cancelar a operação de exclusão se o usuário tentar excluir o último item do DetailsView controle.
<%@ 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 CustomerDetailView_ItemDeleting(Object sender, DetailsViewDeleteEventArgs e)
{
// Cancel the delete operation if the user attempts to delete the last
// record from the data source.
if (CustomerDetailView.DataItemCount <= 1)
{
e.Cancel = true;
MessageLabel.Text = "You must keep at least one store.";
}
else
{
MessageLabel.Text = "";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DetailsView ItemDeleting Example</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>DetailsView ItemDeleting Example</h3>
<asp:detailsview id="CustomerDetailView"
datasourceid="DetailsViewSource"
datakeynames="CustomerID"
autogeneratedeletebutton="true"
autogeneraterows="true"
allowpaging="true"
onitemdeleting="CustomerDetailView_ItemDeleting"
runat="server">
<fieldheaderstyle backcolor="Navy"
forecolor="White"/>
</asp:detailsview>
<asp:Label id="MessageLabel"
forecolor="Red"
runat="server"/>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the web.config file. -->
<asp:SqlDataSource ID="DetailsViewSource" runat="server"
ConnectionString=
"<%$ ConnectionStrings:NorthWindConnectionString%>"
InsertCommand="INSERT INTO [Customers]([CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country]) VALUES (@CustomerID, @CompanyName, @Address, @City, @PostalCode, @Country)"
SelectCommand="Select [CustomerID], [CompanyName],
[Address], [City], [PostalCode], [Country]
From [Customers]"
DeleteCommand="DELETE FROM [Customers] WHERE [CustomerID] = @CustomerID" >
</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 CustomerDetailView_ItemDeleting(ByVal sender As Object, ByVal e As DetailsViewDeleteEventArgs)
' Cancel the delete operation if the user attempts to delete the last
' record from the data source.
If (CustomerDetailView.DataItemCount <= 1) Then
e.Cancel = True
MessageLabel.Text = "You must keep at least one store."
Else
MessageLabel.Text = ""
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DetailsView ItemDeleting Example</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>DetailsView ItemDeleting Example</h3>
<asp:detailsview id="CustomerDetailView"
datasourceid="DetailsViewSource"
datakeynames="CustomerID"
autogeneratedeletebutton="true"
autogeneraterows="true"
allowpaging="true"
onitemdeleting="CustomerDetailView_ItemDeleting"
runat="server">
<fieldheaderstyle backcolor="Navy"
forecolor="White"/>
</asp:detailsview>
<asp:Label id="MessageLabel"
forecolor="Red"
runat="server"/>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the web.config file. -->
<asp:SqlDataSource ID="DetailsViewSource" runat="server"
ConnectionString=
"<%$ ConnectionStrings:NorthWindConnectionString%>"
InsertCommand="INSERT INTO [Customers]([CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country]) VALUES (@CustomerID, @CompanyName, @Address, @City, @PostalCode, @Country)"
SelectCommand="Select [CustomerID], [CompanyName],
[Address], [City], [PostalCode], [Country]
From [Customers]"
DeleteCommand="DELETE FROM [Customers] WHERE [CustomerID] = @CustomerID" >
</asp:SqlDataSource>
</form>
</body>
</html>
Comentários
O ItemDeleting evento é gerado quando um botão Excluir dentro do DetailsView controle é clicado, mas antes da operação de exclusão. Isso permite que você forneça um manipulador de eventos que executa uma rotina personalizada, como cancelar a operação de exclusão, sempre que esse evento ocorrer.
Um DetailsViewDeleteEventArgs objeto é passado para o manipulador de eventos, o que permite determinar o índice do registro que está sendo excluído e indicar que a operação de exclusão deve ser cancelada. Para cancelar a operação de exclusão, defina a Cancel propriedade como true
. Você também pode manipular as Keys coleções e Values , se necessário, antes que os valores sejam passados para a fonte de dados.
Para obter mais informações sobre como lidar com eventos, consulte Manipulando e gerando eventos.