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
|
IDataItemContainer, interface
Permet aux conteneurs de contrôles liés aux données d'identifier un objet d'élément de données pour les opérations de liaison de données simplifiées.
Assembly : System.Web (dans System.Web.dll)
Le type IDataItemContainer expose les membres suivants.
| Nom | Description | |
|---|---|---|
|
DataItem | Une fois implémenté, obtient un object utilisé dans des opérations de liaison de données simplifiées. |
|
DataItemIndex | Une fois implémenté, obtient l'index de l'élément de données lié à un contrôle. |
|
DisplayIndex | Une fois implémenté, obtient la position de l'élément de données tel qu'il s'affiche dans un contrôle. |
| Nom | Description | |
|---|---|---|
|
EnableDynamicData(Type) | Surchargé. Active le comportement Dynamic Data pour le contrôle de données spécifié. (Défini par DataControlExtensions.) |
|
EnableDynamicData(Type, Object) | Surchargé. Active le comportement Dynamic Data pour le contrôle de données spécifié. (Défini par DataControlExtensions.) |
|
EnableDynamicData(Type, IDictionary<String, Object>) | Surchargé. Active le comportement Dynamic Data pour le contrôle de données spécifié. (Défini par DataControlExtensions.) |
|
GetDefaultValues | Obtient la collection des valeurs par défaut pour le contrôle de données spécifié. (Défini par DynamicDataExtensions.) |
|
GetMetaTable | Obtient les métadonnées de table pour le contrôle de données spécifié. (Défini par DynamicDataExtensions.) |
|
SetMetaTable(MetaTable) | Surchargé. Définit les métadonnées de table pour le contrôle de données spécifié. (Défini par DynamicDataExtensions.) |
|
SetMetaTable(MetaTable, IDictionary<String, Object>) | Surchargé. Définit les métadonnées de table et le mappage des valeurs par défaut pour le contrôle de données spécifié. (Défini par DynamicDataExtensions.) |
|
SetMetaTable(MetaTable, Object) | Surchargé. Définit les métadonnées de table et le mappage des valeurs par défaut pour le contrôle de données spécifié. (Défini par DynamicDataExtensions.) |
|
TryGetMetaTable | Détermine si des métadonnées de table sont disponibles. (Défini par DynamicDataExtensions.) |
Les classes de conteneur qui implémentent l'interface IDataItemContainer peuvent spécifier, parmi leurs propriétés, celles qui identifient l'élément de données pour des opérations de liaison de données, telles que la liaison tardive avec la classe DataBinder.
L'exemple de code suivant illustre l'utilisation de l'interface IDataItemContainer. Le SimpleSpreadsheetControl est un contrôle qui affiche des données de style tabulaires, semblable à un contrôle DataGrid ou GridView. Il contient un jeu d'objets SimpleSpreadsheetRow.
La classe SimpleSpreadsheetRow est une classe de conteneur qui implémente l'interface IDataItemContainer. Bien que, dans cet exemple, la propriété d'élément de données soit intuitivement nommée Data, la propriété DataItem peut être implémentée pour correspondre à toute propriété ou pour retourner une valeur d'une méthode.
using System; using System.Collections; using System.Data.Common; using System.Web.UI; using System.Web.UI.WebControls; namespace Samples.AspNet.CS { public class SimpleSpreadsheetControl : CompositeDataBoundControl { protected Table table = new Table(); public virtual TableRowCollection Rows { get { return table.Rows; } } protected override int CreateChildControls(IEnumerable dataSource, bool dataBinding) { int count = 0; // If dataSource is not null, iterate through it and // extract each element from it as a row, then // create a SimpleSpreadsheetRow and add it to the // rows collection. if (dataSource != null) { SimpleSpreadsheetRow row; IEnumerator e = dataSource.GetEnumerator(); while (e.MoveNext()) { object datarow = e.Current; row = new SimpleSpreadsheetRow(count, datarow); this.Rows.Add(row); ++count; } Controls.Add(table); } return count; } } // // public class SimpleSpreadsheetRow : TableRow, IDataItemContainer { private object data; private int _itemIndex; public SimpleSpreadsheetRow(int itemIndex, object o) { data = o; _itemIndex = itemIndex; } public virtual object Data { get { return data; } } object IDataItemContainer.DataItem { get { return Data; } } int IDataItemContainer.DataItemIndex { get { return _itemIndex; } } int IDataItemContainer.DisplayIndex { get { return _itemIndex; } } protected override void RenderContents(HtmlTextWriter writer) { if (Data != null) { if (Data is System.Data.Common.DbDataRecord) { DbDataRecord temp = (DbDataRecord)Data; for (int i = 0; i < temp.FieldCount; ++i) { writer.Write("<TD>"); writer.Write(temp.GetValue(i).ToString()); writer.Write("</TD>"); } } else writer.Write("<TD>" + Data.ToString() + "</TD>"); } else writer.Write("<TD>This is a test</TD>"); } } }
L'exemple de code suivant montre comment utiliser les contrôles SimpleSpreadsheetControl et AccessDataSource pour afficher des données dans une base de données Access.
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="Samples.AspNet.CS" %> <%@ Page language="c#" %> <!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> <title>IDataItemContainer - C# Example</title> </head> <body> <form id="Form1" method="post" runat="server"> <aspSample:SimpleSpreadsheetControl id="SimpleSpreadsheet1" runat="server" datasourceid="AccessDataSource1" /> <asp:accessdatasource id="AccessDataSource1" runat="server" datasourcemode="DataReader" datafile="Northwind.mdb" SelectCommand="SELECT OrderID,CustomerID,OrderDate,RequiredDate, ShippedDate FROM Orders WHERE EmployeeID = (SELECT EmployeeID FROM Employees WHERE LastName = 'King')"> </asp:accessdatasource> </form> </body> </html>
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.