This documentation is archived and is not being maintained.

DetailsView.AutoGenerateDeleteButton Property

Gets or sets a value indicating whether the built-in control to delete the current record is displayed in a DetailsView control.

Namespace:  System.Web.UI.WebControls
Assembly:  System.Web (in System.Web.dll)

public virtual bool AutoGenerateDeleteButton { get; set; }
<asp:DetailsView AutoGenerateDeleteButton="True|False" />

Property Value

Type: System.Boolean
true to display the built-in control to delete the current record; otherwise, false. The default is false.

When a DetailsView control is bound to an object that inherits from DataSourceView and the CanDelete property returns true, the DetailsView control can take advantage of the data source control's capabilities and provide automatic deleting functionality.


For a SqlDataSourceView object to delete data, the SqlDataSource.DeleteCommand property of the underlying SqlDataSource object must be set with a delete query statement.

When the AutoGenerateDeleteButton property is set to true, a CommandField row field with a Delete button is automatically displayed in the DetailsView control. Clicking the Delete button permanently removes that record from the data source.


You must also set the DataKeyNames property for the automatic deletion feature to work.

The DetailsView control provides several events that you can use to perform a custom action when a record is deleted. The following table lists the available events.




Occurs when the Delete button is clicked, but after the DetailsView control deletes the record from the data source. This event is often used to check the results of the delete operation.


Occurs when the Delete button is clicked, but before the DetailsView control deletes the record from the data source. This event is often used to cancel the delete operation.

The value of AutoGenerateDeleteButton is stored in view state.

The following code example demonstrates how to use the AutoGenerateDeleteButton property to display the built-in control to delete the current record.

<%@ Page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
<html xmlns="" >
  <head runat="server">
    <title>DetailsView AutoGenerateDeleteButton Example</title>
    <form id="Form1" runat="server">

      <h3>DetailsView AutoGenerateDeleteButton Example</h3>

        <asp:detailsview id="CustomersDetailView"

          <headerstyle backcolor="Navy"


        <!-- 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" 
              "<%$ 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 

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0