Freigeben über


ListView.DataKeyNames Eigenschaft

Definition

Ruft ein Array ab, das die Namen der primären Schlüsselfelder der in einem ListView-Steuerelement angezeigten Elemente enthält, bzw. legt das Array fest.

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

Eigenschaftswert

String[]

Ein Array, der die Namen der primären Schlüsselfelder für die in einem ListView-Steuerelement angezeigten Elemente enthält.

Attribute

Beispiele

Im folgenden Beispiel wird gezeigt, wie Sie die DataKeyNames Eigenschaft verwenden, um das Schlüsselfeld der Datenquelle anzugeben.

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

Hinweise

Verwenden Sie die DataKeyNames Eigenschaft, um das Feld oder die Felder anzugeben, die den Primärschlüssel der Datenquelle darstellen. Um diese Eigenschaft deklarativ festzulegen, verwenden Sie eine durch Komma getrennte Liste von Feldnamen.

Wenn die DataKeyNames Eigenschaft festgelegt wird, füllt das ListView Steuerelement die DataKeys Auflistung automatisch mit den Werten aus dem angegebenen Feld oder den Feldern auf. Dies bietet eine bequeme Möglichkeit, auf die Primärschlüssel jedes Elements zuzugreifen.

Wichtig

Das ListView Steuerelement speichert schlüsselfeldwerte im Steuerelementstatusfeld. Wenn diese Werte vertrauliche Informationen enthalten, empfehlen wir, die Ansichtszustandsverschlüsselung zu aktivieren, indem Sie die ViewStateEncryptionMode Eigenschaft auf ViewStateEncryptionMode.Alwaysfestlegen.

Sie müssen die Eigenschaft für die DataKeyNames automatische Aktualisierung und das Löschen von Features des ListView Steuerelements festlegen, die funktionieren. Die Werte dieser Schlüsselfelder werden an das Datenquellensteuerelement übergeben, um dem Element zu entsprechen, um das Element zu aktualisieren oder zu löschen.

Felder, die mithilfe der Eigenschaft als Datentyp angegeben werden, werden während der Aktualisierungs- und Löschvorgänge mithilfe der DataKeyNames Keys Auflistung an das Datenquellensteuerelement übergeben. Datenschlüsselfelder werden an das Datenquellensteuerelement übergeben, auch wenn sie nicht an Steuerelemente in einer Vorlage gebunden sind.

Gilt für

Siehe auch