Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

IDataItemContainer interface

 

Date de publication : novembre 2016

Conteneurs de contrôle lié aux données permet 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

NomDescription
System_CAPS_pubpropertyDataItem

En cas d’implémentation, obtient un object qui est utilisé dans simplifiée des opérations de liaison.

System_CAPS_pubpropertyDataItemIndex

En cas d’implémentation, obtient l’index de l’élément de données lié à un contrôle.

System_CAPS_pubpropertyDisplayIndex

En cas d’implémentation, obtient la position de l’élément de données tel qu’il apparaît dans un contrôle.

NomDescription
System_CAPS_pubmethodEnableDynamicData(Type)

Surchargé. Active le comportement Dynamic Data pour le contrôle de données spécifié.(Défini par DataControlExtensions.)

System_CAPS_pubmethodEnableDynamicData(Type, IDictionary<String, Object>)

Surchargé. Active le comportement Dynamic Data pour le contrôle de données spécifié.(Défini par DataControlExtensions.)

System_CAPS_pubmethodEnableDynamicData(Type, Object)

Surchargé. Active le comportement Dynamic Data pour le contrôle de données spécifié.(Défini par DataControlExtensions.)

System_CAPS_pubmethodGetDefaultValues()

Surchargé. Obtient la collection des valeurs par défaut pour le contrôle de données spécifié.(Défini par DynamicDataExtensions.)

System_CAPS_pubmethodGetMetaTable()

Surchargé. Obtient les métadonnées de table pour le contrôle de données spécifié.(Défini par DynamicDataExtensions.)

System_CAPS_pubmethodSetMetaTable(MetaTable)

Surchargé. Définit les métadonnées de table pour le contrôle de données spécifié.(Défini par DynamicDataExtensions.)

System_CAPS_pubmethodSetMetaTable(MetaTable, IDictionary<String, Object>)

Surchargé. Définit le mappage table de valeurs par défaut et les métadonnées pour le contrôle de données spécifié.(Défini par DynamicDataExtensions.)

System_CAPS_pubmethodSetMetaTable(MetaTable, Object)

Surchargé. Définit le mappage table de valeurs par défaut et les métadonnées pour le contrôle de données spécifié.(Défini par DynamicDataExtensions.)

System_CAPS_pubmethodTryGetMetaTable(MetaTable)

Surchargé. Détermine si les métadonnées de la table sont disponible.(Défini par DynamicDataExtensions.)

Conteneur des classes qui implémentent la IDataItemContainer interface permettre spécifier leurs propriétés identifient l’élément de données pour les opérations de liaison de données, telles que la liaison tardive avec la DataBinder classe.

L’exemple de code suivant montre comment utiliser le IDataItemContainer interface. Le SimpleSpreadsheetControl est un contrôle qui affiche des données de style tabulaires, semblables à un DataGrid ou GridView contrôle. Il contient un jeu de SimpleSpreadsheetRow objets.

La SimpleSpreadsheetRow classe est une classe de conteneur qui implémente le IDataItemContainer interface. Bien que dans cet exemple la propriété d’élément de données soit intuitivement nommée Data, le DataItem propriété peut être implémentée pour correspondre à toute propriété ou valeur de retour 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 le SimpleSpreadsheetControl et AccessDataSource contrôle 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
Disponible depuis 2.0
Retour au début
Afficher: