ListView.DataKeyNames 屬性

定義

取得或設定陣列,這個陣列包含 ListView 控制項中所顯示項目的主索引鍵欄位名稱。

public:
 virtual property cli::array <System::String ^> ^ DataKeyNames { cli::array <System::String ^> ^ get(); void set(cli::array <System::String ^> ^ value); };
[System.ComponentModel.TypeConverter(typeof(System.Web.UI.WebControls.StringArrayConverter))]
public virtual string[] DataKeyNames { get; set; }
[<System.ComponentModel.TypeConverter(typeof(System.Web.UI.WebControls.StringArrayConverter))>]
member this.DataKeyNames : string[] with get, set
Public Overridable Property DataKeyNames As String()

屬性值

String[]

陣列,包含 ListView 控制項中所顯示項目的主索引鍵欄位名稱。

屬性

範例

下列範例示範如何使用 DataKeyNames 屬性來指定資料來源的索引鍵欄位。

<asp:ListView runat="server" 
  ID="EmployeesListView"
  OnItemCommand="EmployeesListView_OnItemCommand"
  DataSourceID="EmployeesDataSource" 
  DataKeyNames="EmployeeID">
  <LayoutTemplate>
    <table runat="server" id="tblEmployees" 
           cellspacing="0" cellpadding="1" width="440px" border="1">
      <tr id="itemPlaceholder" runat="server"></tr>
    </table>
    <asp:DataPager ID="EmployeesDataPager" runat="server" PageSize="10">
      <Fields>
        <asp:NumericPagerField />
      </Fields>
    </asp:DataPager>
  </LayoutTemplate>
  <ItemTemplate>
    <tr runat="server">
      <td>
        <asp:Label runat="server" ID="NameLabel" 
          Text='<%#Eval("LastName") + ", " + Eval("FirstName") %>' />
      </td>
      <td style="width:80px">
        <asp:LinkButton runat="server" 
          ID="SelectEmployeeButton" 
          Text="Add To List" 
          CommandName="AddToList" 
          CommandArgument='<%#Eval("LastName") + ", " + Eval("FirstName") %>' />
      </td>
    </tr>
  </ItemTemplate>
</asp:ListView>

<br /><br />
<b>Selected Employees:</b><br />
<asp:ListBox runat="server" ID="SelectedEmployeesListBox" Rows="10" Width="300px" />
 
<!-- This example uses Microsoft SQL Server and connects      -->
<!-- to the AdventureWorks sample database. Use an ASP.NET    -->
<!-- expression to retrieve the connection string value       -->
<!-- from the Web.config file.                                -->       
<asp:SqlDataSource ID="EmployeesDataSource" runat="server" 
  ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
  SelectCommand="SELECT [EmployeeID], [FirstName], [LastName]
                 FROM HumanResources.vEmployee
                 ORDER BY [LastName], [FirstName], [EmployeeID]">
</asp:SqlDataSource>
<asp:ListView runat="server" 
  ID="EmployeesListView"
  OnItemCommand="EmployeesListView_OnItemCommand"
  DataSourceID="EmployeesDataSource" 
  DataKeyNames="EmployeeID">
  <LayoutTemplate>
    <table runat="server" id="tblEmployees" 
           cellspacing="0" cellpadding="1" width="440px" border="1">
      <tr id="itemPlaceholder" runat="server"></tr>
    </table>
    <asp:DataPager ID="EmployeesDataPager" runat="server" PageSize="10">
      <Fields>
        <asp:NumericPagerField />
      </Fields>
    </asp:DataPager>
  </LayoutTemplate>
  <ItemTemplate>
    <tr runat="server">
      <td>
        <asp:Label runat="server" ID="NameLabel" 
          Text='<%#Eval("LastName") & ", " & Eval("FirstName") %>' />
      </td>
      <td style="width:80px">
        <asp:LinkButton runat="server" 
          ID="SelectEmployeeButton" 
          Text="Add To List" 
          CommandName="AddToList" 
          CommandArgument='<%#Eval("LastName") & ", " & Eval("FirstName") %>' />
      </td>
    </tr>
  </ItemTemplate>
</asp:ListView>

<br /><br />
<b>Selected Employees:</b><br />
<asp:ListBox runat="server" ID="SelectedEmployeesListBox" Rows="10" Width="300px" />
 
<!-- This example uses Microsoft SQL Server and connects      -->
<!-- to the AdventureWorks sample database. Use an ASP.NET    -->
<!-- expression to retrieve the connection string value       -->
<!-- from the Web.config file.                                -->       
<asp:SqlDataSource ID="EmployeesDataSource" runat="server" 
  ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
  SelectCommand="SELECT [EmployeeID], [FirstName], [LastName]
                 FROM HumanResources.vEmployee
                 ORDER BY [LastName], [FirstName], [EmployeeID]">
</asp:SqlDataSource>

備註

DataKeyNames使用 屬性來指定代表資料來源主鍵的欄位或欄位。 若要以宣告方式設定此屬性,請使用以逗號分隔的功能變數名稱清單。

DataKeyNames設定屬性時, ListView 控制項會自動以指定欄位或欄位的值填入其 DataKeys 集合。 這提供方便的方式來存取每個專案的主鍵。

重要

控制項 ListView 會將索引鍵域值儲存在控制項狀態欄位中。 如果這些值包含敏感性資訊,建議您將 屬性設定 ViewStateEncryptionModeViewStateEncryptionMode.Always 來啟用檢視狀態加密。

您必須設定 DataKeyNames 屬性,才能讓控制項的 ListView 自動更新和刪除功能運作。 這些索引鍵欄位的值會傳遞至資料來源控制項,以符合要更新或刪除的專案。

使用 DataKeyNames 屬性指定為數據索引鍵的欄位,會在更新和刪除作業期間,使用 Keys 集合傳遞至資料來源控制項。 即使資料索引鍵欄位未系結至範本中的控制項,資料索引鍵欄位也會傳遞至資料來源控制項。

適用於

另請參閱