0 von 1 fanden dies hilfreich - Dieses Thema bewerten.

GridView.DataKeyNames-Eigenschaft

Hinweis: Diese Eigenschaft ist neu in .NET Framework, Version 2.0.

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

Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

public virtual string[] DataKeyNames { get; set; }
/** @property */
public String[] get_DataKeyNames ()

/** @property */
public void set_DataKeyNames (String[] value)

public function get DataKeyNames () : String[]

public function set DataKeyNames (value : String[])

Eigenschaftenwert

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

Legen Sie mithilfe der DataKeyNames-Eigenschaft die Felder fest, die den primären Schlüssel der Datenquelle darstellen.

HinweisHinweis

Um diese Eigenschaft deklarativ festzulegen, verwenden Sie eine durch Kommas getrennte Liste mit Feldnamen.

Wenn die DataKeyNames-Eigenschaft festgelegt ist, füllt das GridView-Steuerelement automatisch die zugehörige DataKeys-Auflistung mit den Werten aus den angegebenen Feldern auf. Auf diese Weise ist ein benutzerfreundlicher Zugriff auf die primären Schlüssel jeder Zeile gewährleistet.

HinweisHinweis

Das GridView-Steuerelement speichert diese Schlüsselfeldwerte im Steuerelementzustand. Wenn die Werte sensible Informationen enthalten, wird dringend empfohlen, die Ansichtszustandsverschlüsselung zu aktivieren, indem Sie die ViewStateEncryptionMode-Eigenschaft auf ViewStateEncryptionMode.Always festlegen.

Bei der Verwendung automatisch generierter Feldspalten (durch Festlegen der AutoGenerateColumns-Eigenschaft auf true) stellt das GridView-Steuerelement automatisch sicher, dass die automatisch generierten Feldspalten, die den in der DataKeyNames-Eigenschaft angegebenen Feldern entsprechen, schreibgeschützt sind.

HinweisHinweis

Sie müssen die DataKeyNames-Eigenschaft festlegen, damit die Features des GridView-Steuerelements zum automatischen Aktualisieren und Löschen verfügbar sind. Die Werte dieser Schlüsselfelder werden an das Datenquellensteuerelement übergeben, um die zu aktualisierende bzw. zu löschende Zeile zu bestimmen.

Wenn die Visible-Eigenschaft eines Spaltenfelds auf false festgelegt ist, wird die Spalte nicht im GridView-Steuerelement angezeigt, und die Daten für die Spalte durchlaufen keine Schleife zum Client. Wenn die Daten für die nicht angezeigte Spalte die Schleife durchlaufen sollen, müssen Sie der DataKeyNames-Eigenschaft den Feldnamen hinzufügen.

Das folgende Codebeispiel veranschaulicht, wie mit der DataKeyNames-Eigenschaft das Schlüsselfeld der Datenquelle festgelegt werden kann.


<%@ Page language="C#" %>

<html>
  <body>
    <form runat="server">
        
      <h3>GridView Edit Example</h3>

      <!-- The GridView control automatically sets the columns     -->
      <!-- specified in the datakeynames property as read-only.    -->
      <!-- No input controls are rendered for these columns in     -->
      <!-- edit mode.                                              -->
      <asp:gridview id="CustomersGridView" 
        datasourceid="CustomersSqlDataSource" 
        autogeneratecolumns="true"
        autogeneratedeletebutton="true"
        autogenerateeditbutton="true"
        datakeynames="CustomerID"  
        runat="server">
      </asp:gridview>
            
      <!-- 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="CustomersSqlDataSource"  
        selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
        updatecommand="Update Customers SET CompanyName=@CompanyName, Address=@Address, City=@City, PostalCode=@PostalCode, Country=@Country WHERE (CustomerID = @CustomerID)"
        deletecommand="Delete from Customers where CustomerID = @CustomerID"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
        runat="server">
      </asp:sqldatasource>
            
    </form>
  </body>
</html>


Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?