CompositeDataBoundControl イベント

名前 | 説明 | |
---|---|---|
![]() | DataBinding | サーバー コントロールがデータ ソースに連結すると発生します。 ( Control から継承されます。) |
![]() | DataBound | サーバー コントロールがデータ ソースにバインドした後に発生します。 ( BaseDataBoundControl から継承されます。) |
![]() | Disposed | サーバー コントロールがメモリから解放されると発生します。これは、ASP.NET ページが要求されている場合のサーバー コントロールの有効期間における最終段階です。 ( Control から継承されます。) |
![]() | Init | サーバー コントロールが初期化されると発生します。これは、サーバー コントロールの有効期間における最初の手順です。 ( Control から継承されます。) |
![]() | Load | サーバー コントロールが Page オブジェクトに読み込まれると発生します。 ( Control から継承されます。) |
![]() | PreRender | Control オブジェクトの読み込み後、表示を開始する前に発生します。 ( Control から継承されます。) |
![]() | Unload | サーバー コントロールがメモリからアンロードされると発生します。 ( Control から継承されます。) |

CompositeDataBoundControl クラス
アセンブリ: System.Web (system.web.dll 内)

Public MustInherit Class CompositeDataBoundControl Inherits DataBoundControl Implements INamingContainer

CompositeDataBoundControl クラスは、データ ソースからデータにバインドされる複合サーバー コントロールの基本クラスとして機能します。複合サーバー コントロールは、他のサーバー コントロールの組み合わせから作成されるコントロールです。ページ開発者は、CompositeDataBoundControl クラスを直接使用するのではなく、このクラスから派生するコントロールを使用します。複合データ バインド コントロールの例には、DetailsView、FormView、および GridView の各コントロールがあります。
CompositeDataBoundControl コントロールから継承するクラスは、CreateChildControls(IEnumerable,Boolean) メソッドをオーバーライドしてコントロール階層を作成する必要があります。複合データ バインド コントロールの子コントロールにアクセスするには、Controls コレクションを使用します。
継承時の注意 CompositeDataBoundControl クラスから継承する場合は、CreateChildControls(IEnumerable,Boolean) のメンバをオーバーライドする必要があります。
データ ソースの値をテーブルに表示するカスタム複合データ バインド コントロールを作成する方法を次のコード例に示します。
Imports System Imports System.Collections Imports System.Data.Common Imports System.Web.UI Imports System.Web.UI.WebControls Namespace Samples.AspNet.VB Public Class SimpleSpreadsheetControl Inherits CompositeDataBoundControl Protected table As New Table() Public Overridable ReadOnly Property Rows() As TableRowCollection Get Return table.Rows End Get End Property Protected Overrides Function CreateChildControls(ByVal dataSource As IEnumerable, ByVal dataBinding As Boolean) As Integer Dim count As Integer = 0 ' If dataSource is not Nothing, iterate through it and ' extract each element from it as a row, then ' create a SimpleSpreadsheetRow and add it to the ' rows collection. If Not (dataSource Is Nothing) Then Dim row As SimpleSpreadsheetRow Dim e As IEnumerator = dataSource.GetEnumerator() While e.MoveNext() Dim datarow As Object = e.Current row = New SimpleSpreadsheetRow(count, datarow) Me.Rows.Add(row) count += 1 End While Controls.Add(table) End If Return count End Function 'CreateChildControls End Class 'SimpleSpreadsheetControl Public Class SimpleSpreadsheetRow Inherits TableRow Implements IDataItemContainer Private dataObj As Object Private _itemIndex As Integer Public Sub New(ByVal itemIndex As Integer, ByVal o As Object) dataObj = o _itemIndex = itemIndex End Sub 'New Public Overridable ReadOnly Property Data() As Object Get Return dataObj End Get End Property ReadOnly Property DataItem() As Object Implements IDataItemContainer.DataItem Get Return Data End Get End Property ReadOnly Property DataItemIndex() As Integer Implements IDataItemContainer.DataItemIndex Get Return _itemIndex End Get End Property ReadOnly Property DisplayIndex() As Integer Implements IDataItemContainer.DisplayIndex Get Return _itemIndex End Get End Property Protected Overrides Sub RenderContents(ByVal writer As HtmlTextWriter) If Not (Data Is Nothing) Then If TypeOf Data Is System.Data.Common.DbDataRecord Then Dim temp As DbDataRecord = CType(Data, DbDataRecord) Dim i As Integer While i < temp.FieldCount writer.Write("<TD>") writer.Write(temp.GetValue(i).ToString()) writer.Write("</TD>") i += 1 End While Else writer.Write(("<TD>" + Data.ToString() + "</TD>")) End If Else writer.Write("<TD>This is a test</TD>") End If End Sub 'RenderContents End Class 'SimpleSpreadsheetRow End Namespace
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>"); } } }


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 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


CompositeDataBoundControl コンストラクタ
アセンブリ: System.Web (system.web.dll 内)



Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


CompositeDataBoundControl プロパティ



CompositeDataBoundControl メソッド



CompositeDataBoundControl メンバ
他の複数のサーバー コントロールで構成される表形式のデータ バインド コントロールの基本クラスを表します。
CompositeDataBoundControl データ型で公開されるメンバを以下の表に示します。






名前 | 説明 | |
---|---|---|
![]() | DataBinding | サーバー コントロールがデータ ソースに連結すると発生します。(Control から継承されます。) |
![]() | DataBound | サーバー コントロールがデータ ソースにバインドした後に発生します。(BaseDataBoundControl から継承されます。) |
![]() | Disposed | サーバー コントロールがメモリから解放されると発生します。これは、ASP.NET ページが要求されている場合のサーバー コントロールの有効期間における最終段階です。(Control から継承されます。) |
![]() | Init | サーバー コントロールが初期化されると発生します。これは、サーバー コントロールの有効期間における最初の手順です。(Control から継承されます。) |
![]() | Load | サーバー コントロールが Page オブジェクトに読み込まれると発生します。(Control から継承されます。) |
![]() | PreRender | Control オブジェクトの読み込み後、表示を開始する前に発生します。(Control から継承されます。) |
![]() | Unload | サーバー コントロールがメモリからアンロードされると発生します。(Control から継承されます。) |

- CompositeDataBoundControlのページへのリンク