Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

DataKeyCollection, classe

Représente une collection qui contient le champ clé de chaque enregistrement d'une source de données. Cette classe ne peut pas être héritée.

System.Object
  System.Web.UI.WebControls.DataKeyCollection

Espace de noms :  System.Web.UI.WebControls
Assembly :  System.Web (dans System.Web.dll)
public sealed class DataKeyCollection : ICollection, 
	IEnumerable

Le type DataKeyCollection expose les membres suivants.

  Nom Description
Méthode publique DataKeyCollection Initialise une nouvelle instance de la classe DataKeyCollection.
Début
  Nom Description
Propriété publique Count Obtient le nombre d'éléments de la collection.
Propriété publique IsReadOnly Obtient une valeur indiquant si les éléments de DataKeyCollection peuvent être modifiés.
Propriété publique IsSynchronized Obtient une valeur indiquant si DataKeyCollection est synchronisé (thread-safe).
Propriété publique Item Obtient le champ clé à l'index spécifié dans la collection.
Propriété publique SyncRoot Obtient l'objet utilisé pour synchroniser l'accès à DataKeyCollection.
Début
  Nom Description
Méthode publique CopyTo Copie tous les éléments de DataKeyCollection dans l'objet System.Array spécifié, en commençant à l'index spécifié dans l'objet System.Array.
Méthode publique Equals(Object) Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.)
Méthode protégée Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de netto***ge avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publique GetEnumerator Crée un objet implémentant System.Collections.IEnumerator qui contient tous les champs clés dans DataKeyCollection.
Méthode publique GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actif. (Hérité de Object.)
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)
Début
  Nom Description
Méthode d'extension publique AsParallel Active la parallélisation d'une requête. (Défini par ParallelEnumerable.)
Méthode d'extension publique AsQueryable Convertit un IEnumerable en IQueryable. (Défini par Queryable.)
Méthode d'extension publique Cast<TResult> Convertit les éléments d'un IEnumerable vers le type spécifié. (Défini par Enumerable.)
Méthode d'extension publique OfType<TResult> Filtre les éléments d'un IEnumerable en fonction du type spécifié. (Défini par Enumerable.)
Début

La classe DataKeyCollection représente une collection des champs clés de la source de données. Le champ clé de chaque enregistrement de la source de données est stocké dans cette collection. Ceci permet de stocker le champ clé avec un contrôle de liste de données sans l'afficher dans le contrôle. Cette collection contient automatiquement les valeurs du champ spécifié par la propriété BaseDataList.DataKeyField. Il n'est pas possible d'ajouter ou d'enlever manuellement des éléments de cette collection.

Le champ clé est couramment utilisé dans le gestionnaire d'un événement, tel que ItemCommand ou DeleteCommand, en tant que partie intégrante d'une chaîne de requête de mise à jour, dans le but de réviser un enregistrement spécifique dans la source de données. Le champ clé aide la chaîne de requête de mise à jour à identifier l'enregistrement à modifier.

Utilisez la propriété Count pour déterminer le nombre d'éléments dans la collection. Pour récupérer par programme un champ clé de DataKeyCollection, utilisez l'une des méthodes suivantes :

  • Utilisez l'indexeur pour obtenir un seul champ clé de la collection, en utilisant une notation de tableau.

  • Utilisez la méthode CopyTo pour copier le contenu de la collection vers un objet System.Array, qui peut ensuite être utilisé pour obtenir des éléments de la collection.

  • Utilisez la méthode GetEnumerator pour créer un objet implémentant System.Collections.IEnumerator, qui peut ensuite être utilisé pour obtenir des éléments de la collection.



<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">
    <title>BaseDataList DataKeys Example</title>
<script runat="server">

      ICollection CreateDataSource() 
      {

         // Create sample data for the DataGrid control.
         DataTable dt = new DataTable();
         DataRow dr;

         // Define the columns of the table.
         dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
         dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
         dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));

         // Define the primary key for the table as the IntegerValue 
         // column (column 0). To do this, first create an array of 
         // DataColumns to represent the primary key. The primary key can
         // consist of multiple columns, but in this example, only
         // one column is used.
         DataColumn[] keys = new DataColumn[1];
         keys[0] = dt.Columns[0];

         // Then assign the array to the PrimaryKey property of the DataTable. 
         dt.PrimaryKey = keys;

         // Populate the table with sample values.
         for (int i = 0; i < 9; i++) 
         {
            dr = dt.NewRow();

            dr[0] = i;
            dr[1] = "Item " + i.ToString();
            dr[2] = 1.23 * (i + 1);

            dt.Rows.Add(dr);
         }

         // To persist the data source between posts to the server, 
         // store it in session state.  
         Session["Source"] = dt;

         DataView dv = new DataView(dt);
         return dv;

      }

      void Page_Load(Object sender, EventArgs e) 
      {

         // Load sample data only once, when the page is first loaded.
         if (!IsPostBack) 
         {
            ItemsGrid.DataSource = CreateDataSource();
            ItemsGrid.DataBind();
         }

      }

      void Delete_Command(Object sender, DataGridCommandEventArgs e)
      {

         // Retrieve the data table from session state.
         DataTable dt = (DataTable)Session["Source"];

         // Retrieve the data row to delete from the data table. 
         // Use the DataKeys property of the DataGrid control to get 
         // the primary key value of the selected row. 
         // Search the Rows collection of the data table for this value. 
         DataRow row;
         row = dt.Rows.Find(ItemsGrid.DataKeys[e.Item.ItemIndex]);

         // Delete the item selected in the DataGrid from the data source.
         if(row != null)
         {
            dt.Rows.Remove(row);
         }

         // Save the data source.
         Session["Source"] = dt;

         // Create a DataView and bind it to the DataGrid control.
         DataView dv = new DataView(dt);
         ItemsGrid.DataSource = dv;
         ItemsGrid.DataBind();

      }

   </script>

</head>

<body>

   <form id="form1" runat="server">

      <h3>BaseDataList DataKeys Example</h3>

      <asp:DataGrid id="ItemsGrid" 
           BorderColor="Black"
           ShowFooter="False" 
           CellPadding="3" 
           CellSpacing="0"
           HeaderStyle-BackColor="#aaaadd"
           DataKeyField="IntegerValue"
           OnDeleteCommand="Delete_Command"
           runat="server">

         <Columns>

            <asp:ButtonColumn Text="Delete"
                 CommandName="Delete"/>

         </Columns>

      </asp:DataGrid>

   </form>

</body>
</html>



.NET Framework

Pris en charge dans : 4, 3.5, 3.0, 2.0, 1.1, 1.0

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Cela vous a-t-il été utile ?
(1500 caractères restants)
Contenu de la communauté Ajouter
Annotations FAQ