DataKey 类

定义

表示数据绑定控件中某个记录的一个或多个主键字段。

public ref class DataKey : System::Web::UI::IStateManager
public ref class DataKey : IEquatable<System::Web::UI::WebControls::DataKey ^>, System::Web::UI::IStateManager
public class DataKey : System.Web.UI.IStateManager
public class DataKey : IEquatable<System.Web.UI.WebControls.DataKey>, System.Web.UI.IStateManager
type DataKey = class
    interface IStateManager
type DataKey = class
    interface IStateManager
    interface IEquatable<DataKey>
Public Class DataKey
Implements IStateManager
Public Class DataKey
Implements IEquatable(Of DataKey), IStateManager
继承
DataKey
实现

示例

下面的代码示例演示如何使用 Value 对象的 属性确定控件中DetailsView记录的主DataKey键值。


<%@ 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 CustomerDetailsView_DataBound(Object sender, EventArgs e)
  {
    // Get the DataKey object for the current record.
    DataKey key = CustomerDetailsView.DataKey;
    
    // Display the value of the key field.
    MessageLabel.Text = "The key field value for the displayed record is " + 
      key.Value.ToString() + ".";
  }
  
</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"
          ondatabound="CustomerDetailsView_DataBound" 
          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>

<%@ 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 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>

注解

DataKey 用于表示数据绑定控件中记录的主键。 记录的主键可以由数据源中的多个字段之一组成。 DataKey虽然 类不是集合,但它可以存储多个键字段值。 调用 类的构造函数 DataKey 之一时,将填充键字段值。 可通过以下方式从 DataKey 对象检索键字段值:

  • DataKey.Item[Int32]使用 属性检索 对象中特定索引处的DataKey键字段值。

  • DataKey.Item[String]使用 属性检索特定字段的键字段值。

  • Value使用 属性检索 对象中索引 0 处DataKey的键字段的值。 当主键仅包含一个字段时,此属性通常用作检索记录的键值的快捷方式。

  • Values使用 属性创建IOrderedDictionary可用于循环访问键字段值的对象。

通常, DataKey 设置控件的 属性时 DataKeyNames ,对象由数据绑定控件自动生成。 对象 DataKey 包含属性中指定的 DataKeyNames 一个或多个键字段的值。 一次显示单个记录的数据绑定控件 ((如 DetailsViewFormView) )通常存储 DataKey 控件的 属性中显示的 DataKey 当前记录的对象。 一次显示多个记录的数据绑定控件 (例如 GridView) 通常会将控件中每个记录的对象存储在 DataKey 集合 DataKeyArray 中。 然后,该 DataKeyArray 集合将存储在 控件的 属性中 DataKeys

构造函数

DataKey(IOrderedDictionary)

使用指定的键字段值字典初始化 DataKey 类的新实例。

DataKey(IOrderedDictionary, String[])

使用指定的键字段值字典和字段名数组初始化 DataKey 类的新实例。

属性

IsTrackingViewState

获取一个值,该值指示 DataKey 对象是否跟踪其视图状态更改。

Item[Int32]

DataKey 对象中的指定索引位置获取键字段的值。

Item[String]

DataKey 对象中获取具有指定字段名的键字段的值。

Value

获取 DataKey 对象中索引 0 位置的键字段值。

Values

获取一个 IOrderedDictionary 对象,它包含 DataKey 对象中的每个键字段。

方法

Equals(DataKey)

确定指定的 DataKey 数组是否等于当前的数据键。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
LoadViewState(Object)

加载以前保存的 DataKey 对象的视图状态。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
SaveViewState()

保存 DataKey 对象的当前视图状态。

ToString()

返回表示当前对象的字符串。

(继承自 Object)
TrackViewState()

标记开始跟踪并将视图状态更改保存到 DataKey 对象的起点。

显式接口实现

IStateManager.IsTrackingViewState

获取一个值,该值指示 DataKey 对象是否跟踪其视图状态更改。

IStateManager.LoadViewState(Object)

加载以前保存的 DataKey 对象的视图状态。

IStateManager.SaveViewState()

保存 DataKey 对象的当前视图状态。

IStateManager.TrackViewState()

标记开始跟踪并将视图状态更改保存到 DataKey 对象的起点。

适用于

另请参阅