ListView.DataKeyNames Właściwość

Definicja

Pobiera lub ustawia tablicę zawierającą nazwy pól klucza podstawowego dla elementów wyświetlanych w ListView kontrolce.Gets or sets an array that contains the names of the primary key fields for the items displayed in a ListView control.

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()

Wartość właściwości

String[]

Tablica zawierająca nazwy pól klucza podstawowego dla elementów wyświetlanych w ListView formancie.An array that contains the names of the primary key fields for the items displayed in a ListView control.

Atrybuty

Przykłady

Poniższy przykład pokazuje, jak używać właściwości, DataKeyNames Aby określić pole klucza źródła danych.The following example shows how to use the DataKeyNames property to specify the key field of the data source.

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

Uwagi

Użyj DataKeyNames właściwości, aby określić pole lub pola reprezentujące klucz podstawowy źródła danych.Use the DataKeyNames property to specify the field or fields that represent the primary key of the data source. Aby ustawić tę właściwość deklaratywnie, użyj rozdzielanej przecinkami listy nazw pól.To set this property declaratively, use a comma-separated list of field names.

Gdy DataKeyNames Właściwość jest ustawiona, ListView formant automatycznie wypełnia swoją DataKeys kolekcję wartościami z określonego pola lub pola.When the DataKeyNames property is set, the ListView control automatically populates its DataKeys collection with the values from the specified field or fields. Zapewnia to wygodny sposób uzyskiwania dostępu do kluczy podstawowych każdego elementu.This provides a convenient way to access the primary keys of each item.

Ważne

ListViewKontrolka przechowuje wartości pól klucza w polu formantu-State.The ListView control stores key field values in the control-state field. Jeśli te wartości zawierają informacje poufne, zalecamy włączenie szyfrowania stanu widoku przez ustawienie ViewStateEncryptionMode właściwości na ViewStateEncryptionMode.Always .If these values contain sensitive information, we recommend that you enable view-state encryption by setting the ViewStateEncryptionMode property to ViewStateEncryptionMode.Always.

DataKeyNamesAby działała, należy ustawić właściwość automatycznej aktualizacji i usuwania funkcji ListView formantu.You must set the DataKeyNames property for the automatic updating and deleting features of the ListView control to work. Wartości tych pól kluczy są przesyłane do kontrolki źródła danych w celu dopasowania do elementu do zaktualizowania lub usunięcia.The values of these key fields are passed to the data source control in order to match the item to update or delete.

Pola, które są określone jako klucze danych przy użyciu DataKeyNames właściwości, są przenoszone do kontrolki źródła danych podczas operacji aktualizowania i usuwania przy użyciu Keys kolekcji.Fields that are specified as data keys by using the DataKeyNames property are passed to the data source control during update and delete operations by using the Keys collection. Pola klucza danych są przesyłane do kontrolki źródła danych, nawet jeśli nie są one powiązane z kontrolkami w szablonie.Data key fields are passed to the data source control even if they are not bound to controls in a template.

Dotyczy

Zobacz też