Exporter (0) Imprimer
Développer tout

CompositeDataBoundControl, classe

Remarque : cette classe est nouvelle dans le .NET Framework version 2.0.

Représente la classe de base d'un contrôle lié aux données sous forme de tableau composé d'autres contrôles serveur.

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

public abstract class CompositeDataBoundControl : DataBoundControl, INamingContainer
public abstract class CompositeDataBoundControl extends DataBoundControl implements INamingContainer
public abstract class CompositeDataBoundControl extends DataBoundControl implements INamingContainer

La classe CompositeDataBoundControl sert de classe de base pour un contrôle serveur composite qui établit une liaison avec les données d'une source de données. Un contrôle serveur composite est un contrôle généré à partir d'une combinaison d'autres contrôles serveur. Les développeurs de pages n'utilisent pas directement la classe CompositeDataBoundControl ; à la place, ils utilisent des contrôles qui dérivent de cette classe. Les exemples de contrôles composites liés aux données incluent les contrôles DetailsView, FormView et GridView.

Les classes qui héritent du contrôle CompositeDataBoundControl doivent substituer la méthode CreateChildControls(IEnumerable,Boolean) pour créer la hiérarchie des contrôles. Pour accéder aux contrôles enfants d'un contrôle composite lié aux données, utilisez la collection Controls.

Remarques à l'attention des héritiers Lorsque vous héritez de la classe CompositeDataBoundControl, vous devez substituer le membre suivant : CreateChildControls(IEnumerable,Boolean).

L'exemple de code suivant illustre comment créer un contrôle composite lié aux données personnalisé qui affiche les valeurs d'une source de données dans un tableau.

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>");
        }
    }
}

  • AspNetHostingPermission  pour opérer dans un environnement hébergé. Valeur de demande : LinkDemand ; valeur d'autorisation : Minimal
  • AspNetHostingPermission  pour opérer dans un environnement hébergé. Valeur de demande : InheritanceDemand ; valeur d'autorisation : Minimal

System.Object
   System.Web.UI.Control
     System.Web.UI.WebControls.WebControl
       System.Web.UI.WebControls.BaseDataBoundControl
         System.Web.UI.WebControls.DataBoundControl
          System.Web.UI.WebControls.CompositeDataBoundControl
             System.Web.UI.WebControls.DetailsView
             System.Web.UI.WebControls.FormView
             System.Web.UI.WebControls.GridView

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft