Represents the primary key field or fields of a record in a data-bound control.
Assembly: System.Web (in System.Web.dll)
Thetype exposes the following members.
|IsTrackingViewState||Gets a value indicating whether the object is tracking its view-state changes.|
|Item(Int32)||Gets the value of the key field at the specified index from a object.|
|Item(String)||Gets the value of the key field with the specified field name from a object.|
|Value||Gets the value of the key field at index 0 in the object.|
|Values||Gets an IOrderedDictionary object that contains every key field in the object.|
|Equals(DataKey)||Determines whether the specified array is equal to the current data key.|
|Equals(Object)||Determines whether the specified object is equal to the current object. (Inherited from Object.)|
|Finalize||Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)|
|GetHashCode||Serves as the default hash function. (Inherited from Object.)|
|GetType||Gets the Type of the current instance. (Inherited from Object.)|
|LoadViewState||Loads the previously saved view state of the object.|
|MemberwiseClone||Creates a shallow copy of the current Object. (Inherited from Object.)|
|SaveViewState||Saves the current view state of the object.|
|ToString||Returns a string that represents the current object. (Inherited from Object.)|
|TrackViewState||Marks the starting point at which to begin tracking and saving view-state changes to the object.|
|IStateManager.IsTrackingViewState||Gets a value indicating whether the object is tracking its view-state changes.|
|IStateManager.LoadViewState||Infrastructure. Loads the previously saved view state of the object.|
|IStateManager.SaveViewState||Infrastructure. Saves the current view state of the object.|
|IStateManager.TrackViewState||Infrastructure. Marks the starting point at which to begin tracking and saving view-state changes to the object.|
The class is used to represent the primary key for a record in a data-bound control. The primary key for a record can be composed of one of more fields from the data source. Although the class is not a collection, it can store multiple key field values. The key field values are populated when one of the constructors for the class is called. You can retrieve a key field value from a object in the following ways:
Use the DataKey.Item(Int32) property to retrieve a key field value at a specific index in the object.
Use the DataKey.Item(String) property to retrieve a key field value of a specific field.
Use the Value property to retrieve the value of the key field at index 0 in the object. This property is often used as a shortcut to retrieve the key value of a record when the primary key contains only one field.
In general, objects are automatically generated by data-bound controls when the control's DataKeyNames property is set. The objects contain the values of the key field or fields specified in the DataKeyNames property. Data-bound controls that display a single record at a time (such as DetailsView or FormView) generally store the object for the current record displayed in the DataKey property of the control. Data-bound controls that display multiple records at a time (such as GridView) generally store the objects for each record in the control in a DataKeyArray collection. The DataKeyArray collection is then stored in the DataKeys property of the control.
<%@ 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 CustomerDetailsView_DataBound(ByVal sender As Object, ByVal e As EventArgs) Handles CustomerDetailsView.DataBound ' Get the DataKey object for the current record. Dim key As DataKey = CustomerDetailsView.DataKey ' Display the the value of the key field. MessageLabel.Text = "The key field value for the displayed record is " & _ key.Value.ToString() & "." End Sub </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>DataKey Example</title> </head> <body> <form id="form1" runat="server"> <h3>DataKey Example</h3> <asp:detailsview id="CustomerDetailsView" datasourceid="DetailsViewSource" autogeneraterows="true" datakeynames="CustomerID" allowpaging="true" runat="server"> </asp:detailsview> <br/> <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" selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]" connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"/> </form> </body> </html>