Classe CompositeDataBoundControl
Aggiornamento: novembre 2007
Rappresenta la classe base di un controllo associato a dati in formato tabella composto da altri controlli server.
Assembly: System.Web (in 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 classe CompositeDataBoundControl viene utilizzata come classe base per un controllo server composito che esegue l'associazione ai dati di un'origine dati. Un controllo server composito è un controllo generato mediante una combinazione di altri controlli server. Gli sviluppatori di pagine non utilizzano direttamente la classe CompositeDataBoundControl, ma piuttosto controlli che derivano da questa classe. Alcuni esempi di controlli compositi associati a dati sono DetailsView, FormView e GridView.
Le classi che ereditano dal controllo CompositeDataBoundControl devono eseguire l'override del metodo CreateChildControls(IEnumerable, Boolean) per creare la gerarchia dei controlli. Per accedere ai controlli figlio di un controllo composito associato a dati, utilizzare l'insieme Controls.
Note per gli eredi:Quando si eredita dalla classe CompositeDataBoundControl, eseguire l'override del seguente membro: CreateChildControls(IEnumerable, Boolean).
Nell'esempio di codice riportato di seguito viene illustrato come creare un controllo composito personalizzato associato a dati che visualizza i valori di un'origine dati in una tabella.
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
per operare in un ambiente host. Valore richiesta: LinkDemand. Valore autorizzazione: Minimal.
- AspNetHostingPermission
per operare in un ambiente host. Valore richiesta: InheritanceDemand. Valore autorizzazione: 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 e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.