CompositeDataBoundControl (Clase)
Actualización: noviembre 2007
Representa la clase base para un control tabular enlazado a datos que se compone de otros controles de servidor.
Ensamblado: System.Web (en System.Web.dll)
[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)] public abstract class CompositeDataBoundControl : DataBoundControl, INamingContainer
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal) */ /** @attribute AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal) */ public abstract class CompositeDataBoundControl extends DataBoundControl implements INamingContainer
public abstract class CompositeDataBoundControl extends DataBoundControl implements INamingContainer
<asp:CompositeDataBoundControl />
La clase CompositeDataBoundControl sirve como clase base para un control de servidor compuesto que se enlaza a los datos de un origen de datos. Un control de servidor compuesto es un control que se compone de una combinación de otros controles de servidor. Los desarrolladores de páginas no utilizan directamente la clase CompositeDataBoundControl; en su lugar, utilizan controles que derivan de esta clase. Algunos ejemplos de controles enlazados a datos compuestos son los controles DetailsView, FormView y GridView.
Las clases que heredan del control CompositeDataBoundControl deben reemplazar el método CreateChildControls(IEnumerable, Boolean) para crear la jerarquía de controles. Para tener acceso a los controles secundarios de un control enlazado a datos compuesto, utilice la colección Controls.
Notas para los herederos:Al heredar de la clase CompositeDataBoundControl, es necesario reemplazar el miembro CreateChildControls(IEnumerable, Boolean).
El ejemplo de código siguiente muestra cómo crear un control enlazado a datos compuesto personalizado que muestra los valores de un origen de datos en una tabla.
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
para trabajar en un entorno alojado en host. Valor de la petición: LinkDemand; valor del permiso: Minimal
- AspNetHostingPermission
para trabajar en un entorno alojado en host. Valor de la petición: InheritanceDemand; valor del permiso: Minimal
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
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.