DetailsView.DataKey Property


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Gets a DataKey object that represents the primary key of the displayed record.

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

public virtual DataKey DataKey { get; }

Property Value

Type: System.Web.UI.WebControls.DataKey

A DataKey that represents the primary key of the displayed record.

When the DataKeyNames property is set, the DetailsView control automatically creates a DataKey object that represents the key field or fields for the current record. Use the DataKey property to get this DataKey object. This property is commonly used to obtain the keys and their corresponding values for the fields specified in the DataKeyNames property.


As a shortcut, you can also use the SelectedValue property to determine the value of the first key field listed in the DataKeyNames property.

The following code example demonstrates how to use the DataKey property to determine the key field and corresponding value for the current record.

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
<script runat="server">

  void CustomerDetailView_ItemUpdated(Object sender, 
    DetailsViewUpdatedEventArgs e)

    // Create a dictionary that contains the key fields and values using
    // the AllValues method of the DataKey object contained in the DataKey 
    // property.
    IOrderedDictionary keyList = CustomerDetailView.DataKey.Values;

    // Get the ArrayList objects that represent the key fields and values.
    ArrayList keys = (ArrayList)keyList.Keys;
    ArrayList values = (ArrayList)keyList.Values;

    // Get the key field and value for the current record. 
    String keyField = keys[0].ToString();
    String keyValue = values[0].ToString();

    // Log the update operation using the key field and value.
    LogUpdate(keyField, keyValue);


  void LogUpdate(String keyField, String keyValue)
    // Insert code to log the update operation.


<html xmlns="" >
  <head runat="server">
    <title>DetailsView DataKey Example</title>
    <form id="Form1" runat="server">

      <h3>DetailsView DataKey Example</h3>

        <asp:detailsview id="CustomerDetailView"

          <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 [Customers]"
          UpdateCommand="UPDATE [Customers] SET 
            [CompanyName] = @CompanyName, 
            [Address] = @Address, [City] = @City,
            [PostalCode] = @PostalCode, [Country] = @Country
            WHERE [CustomerID] = @CustomerID">

.NET Framework
Available since 2.0
Return to top