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

Das folgende Beispiel zeigt, 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 Bzw. die Felder anzugeben, die den Primärschlüssel der Datenquelle darstellen. Um diese Eigenschaft deklarativ festzulegen, verwenden Sie eine durch Trennzeichen getrennte Liste von Feldnamen.

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

Wichtig

Das ListView Steuerelement speichert Schlüsselfeldwerte im Steuerelementzustandsfeld. Wenn diese Werte vertrauliche Informationen enthalten, empfiehlt es sich, die Verschlüsselung des Ansichtszustands zu aktivieren, indem Sie die ViewStateEncryptionMode -Eigenschaft auf ViewStateEncryptionMode.Alwaysfestlegen.

Sie müssen festlegen, dass die DataKeyNames -Eigenschaft für das automatische Aktualisieren und Löschen von Features des ListView Steuerelements funktioniert. Die Werte dieser Schlüsselfelder werden an das Datenquellensteuerelement übergeben, um das zu aktualisierende oder zu löschende Element abzugleichen.

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

Gilt für:

Weitere Informationen