Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
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.

Espace de noms :  System.Web.UI
Assembly :  System.Web (dans System.Web.dll)

public interface IDataItemContainer : INamingContainer

Le type IDataItemContainer expose les membres suivants.

  NomDescription
Propriété publiqueDataItemUne fois implémenté, obtient un object utilisé dans des opérations de liaison de données simplifiées.
Propriété publiqueDataItemIndexUne fois implémenté, obtient l'index de l'élément de données lié à un contrôle.
Propriété publiqueDisplayIndexUne fois implémenté, obtient la position de l'élément de données tel qu'il s'affiche dans un contrôle.
Début

  NomDescription
Méthode d'extension publiqueEnableDynamicData(Type)Surchargé. Active le comportement Dynamic Data pour le contrôle de données spécifié. (Défini par DataControlExtensions.)
Méthode d'extension publiqueEnableDynamicData(Type, Object)Surchargé. Active le comportement Dynamic Data pour le contrôle de données spécifié. (Défini par DataControlExtensions.)
Méthode d'extension publiqueEnableDynamicData(Type, IDictionary<String, Object>)Surchargé. Active le comportement Dynamic Data pour le contrôle de données spécifié. (Défini par DataControlExtensions.)
Méthode d'extension publiqueGetDefaultValuesObtient la collection des valeurs par défaut pour le contrôle de données spécifié. (Défini par DynamicDataExtensions.)
Méthode d'extension publiqueGetMetaTableObtient les métadonnées de table pour le contrôle de données spécifié. (Défini par DynamicDataExtensions.)
Méthode d'extension publiqueSetMetaTable(MetaTable)Surchargé. Définit les métadonnées de table pour le contrôle de données spécifié. (Défini par DynamicDataExtensions.)
Méthode d'extension publiqueSetMetaTable(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.)
Méthode d'extension publiqueSetMetaTable(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.)
Méthode d'extension publiqueTryGetMetaTableDétermine si des métadonnées de table sont disponibles. (Défini par DynamicDataExtensions.)
Début

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>


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

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.

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft