DataBoundControlAdapterとは? わかりやすく解説

DataBoundControlAdapter クラス

メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

アダプタが関連付けられている DataBoundControl オブジェクトの、特定のブラウザ要求に対する動作をカスタマイズします。

名前空間: System.Web.UI.WebControls.Adapters
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public Class DataBoundControlAdapter
    Inherits WebControlAdapter
Dim instance As DataBoundControlAdapter
public class DataBoundControlAdapter : WebControlAdapter
public ref class DataBoundControlAdapter :
 public WebControlAdapter
public class DataBoundControlAdapter extends
 WebControlAdapter
public class DataBoundControlAdapter extends
 WebControlAdapter
解説解説

DataBoundControl クラスから派生したコントロールは、データ ソースにバインドされ、バインド先のデータ ソース内の項目を列挙することによって、そのコントロールのユーザー インターフェイスまたは子コントロール階層を生成します。DataBoundControl は、データ ソースにバインドできるすべてのコントロール (DataGrid コントロールや ListBox コントロールなど) の共通特性を定義する抽象基本クラスです。詳細については、「DataBoundControl」を参照してください。

DataBoundControlAdapter は、特定のブラウザまたはブラウザのクラスに対する DataBoundControl の動作を変更します。また、一部の機能では、フィルタとして機能します。表示動作の適応性の多くは、HtmlTextWriter クラスから派生した特定のクラスにカプセル化できます。したがって、単一のアダプタをブラウザ クラスの複数の動作に使用することができ、また、HtmlTextWriter クラスに順応性を持たせることによってコントロール アダプタを使用する必要がなくなるとも言えます。

.browser 定義ファイルに <controlAdapter> というエントリが存在する場合、各コントロールは、これらのファイルを通じて明示的にアダプタに対応付けられます。そのため、アダプタとコントロールの対応付けに必要なルックアップを実行する場合、DataBoundControl の Adapter プロパティに対するすべてのアクセスには、.browser 定義ファイルから抽出された HttpBrowserCapabilities オブジェクトが使用されます。

処理中に、.NET Framework が、ブラウザ固有のコントロールのメソッドに対する呼び出しを受け取ります。コントロール アダプタが割り当てられている場合、.NET Framework は、関連付けられているアダプタ メソッドを呼び出します。詳細については、「ControlAdapter」を参照してください。

M:System.Web.UI.WebControls.Adapters.DataBoundControlAdapter.PerformDataBinding(System.Collections.IEnumerable) メソッドは、列挙可能なコレクションを、関連付けられている DataBoundControl にバインドします。Control プロパティは、DataBoundControl コントロールへの、厳密に型指定されている参照を返します。

使用例使用例

2 つの派生コントロールを作成および使用する例を次に示します。

最初のコード例は、Web ページを使用して、MyDataBound コントロール、および DataView オブジェクトの形式でデータを提供する ObjectDataSource のインスタンスを宣言しています。

2 番目のコード例には、派生した MyDataBound クラスと MyDataBoundAdapter クラスが含まれています。

Imports System
Imports System.Data
Imports System.Web
Imports System.Web.UI
Imports System.Collections
Imports System.Security
Imports System.Security.Permissions

Namespace MyControls

    ' MyDataBound control is a simple read-only grid control.
    <AspNetHostingPermission(SecurityAction.Demand, _
        Level:=AspNetHostingPermissionLevel.Minimal)> _
    <AspNetHostingPermission(SecurityAction.InheritanceDemand, _
        Level:=AspNetHostingPermissionLevel.Minimal)> _
    Public Class MyDataBound
        Inherits System.Web.UI.WebControls.DataBoundControl

        ' This is an enumerator for the data source.
        Private dataSourceEnumerator As IEnumerator
 = Nothing

        ' Render the data source as a table, without row and column
 headers.
        Protected Overrides Sub
 RenderContents( _
            ByVal writer As System.Web.UI.HtmlTextWriter)

            ' Render the <table> tag.
            writer.RenderBeginTag(HtmlTextWriterTag.Table)

            ' Render the table rows.
            While dataSourceEnumerator.MoveNext()

                ' Get the next data row as an object array.
                Dim dataArray As Object()
 = CType( _
                    dataSourceEnumerator.Current, DataRowView).Row.ItemArray

                ' Render the <tr> tag.
                writer.RenderBeginTag(HtmlTextWriterTag.Tr)

                ' Render the fields of the row.
                Dim col As Integer
                For col = 0 To (dataArray.GetLength(0))
 - 1

                    'Render the <td> tag, the field data and the
 </td> tag.
                    writer.RenderBeginTag(HtmlTextWriterTag.Td)
                    writer.Write(dataArray(col))
                    writer.RenderEndTag()
                Next col

                ' Render the </tr> tag.
                writer.RenderEndTag()
            End While

            ' Render the </table> tag.
            writer.RenderEndTag()
        End Sub 'RenderContents

        ' Data binding consists of saving an enumerator for the data.
        Protected Overrides Sub
 PerformDataBinding(ByVal data As IEnumerable)

            dataSourceEnumerator = data.GetEnumerator()
        End Sub 'PerformDataBinding
    End Class 'MyDataBound

    ' MyDataBoundAdapter modifies a MyDataBound control to display a
    ' grid as a list with row separators.
    <AspNetHostingPermission(SecurityAction.Demand, _
        Level:=AspNetHostingPermissionLevel.Minimal)> _
    <AspNetHostingPermission(SecurityAction.InheritanceDemand, _
        Level:=AspNetHostingPermissionLevel.Minimal)> _
    Public Class MyDataBoundAdapter
        Inherits System.Web.UI.WebControls.Adapters.DataBoundControlAdapter

        ' Returns a strongly-typed reference to the MyDataBound control.
        Public Shadows ReadOnly
 Property Control() As MyDataBound
            Get
                Return CType(MyBase.Control,
 MyDataBound)
            End Get
        End Property

        ' One-dimensional list for the grid data.
        Private dataArray As New
 ArrayList()

        ' Copy grid data to one-dimensional list, add row separators.
        Protected Overrides Sub
 PerformDataBinding(ByVal data As IEnumerable)

            Dim dataSourceEnumerator As IEnumerator
 = data.GetEnumerator()

            ' Iterate through the table rows.
            While dataSourceEnumerator.MoveNext()

                ' Add the next data row to the ArrayList.
                dataArray.AddRange(CType(dataSourceEnumerator.Current, _
                                        DataRowView).Row.ItemArray)

                ' Add a separator to the ArrayList.
                dataArray.Add("----------")
            End While
        End Sub 'PerformDataBinding

        ' Render the data source as a one-dimensional list.
        Protected Overrides Sub
 RenderContents( _
            ByVal writer As System.Web.UI.HtmlTextWriter)

            ' Render the data list.
            Dim col As Integer
            For col = 0 To dataArray.Count
 - 1
                writer.Write(dataArray(col))
                writer.WriteBreak()
            Next col
        End Sub 'RenderContents
    End Class 'MyDataBoundAdapter
 
End Namespace ' MyControls
using System;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Collections;
using System.Security.Permissions;

namespace MyControls
{
    // MyDataBound control is a simple read-only grid control.
    [AspNetHostingPermission(SecurityAction.Demand,
        Level = AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand,
        Level = AspNetHostingPermissionLevel.Minimal)]
    public class MyDataBound : System.Web.UI.WebControls.DataBoundControl
    {
        // This is an enumerator for the data source.
        IEnumerator dataSourceEnumerator = null;

        // Render the data source as a table, without row and column
 headers.
        protected override void RenderContents(
            System.Web.UI.HtmlTextWriter writer)
        {
            // Render the <table> tag.
            writer.RenderBeginTag(HtmlTextWriterTag.Table);

            // Render the table rows.
            while (dataSourceEnumerator.MoveNext())
            {
                // Get the next data row as an object array.
                object[] dataArray = 
                    ((DataRowView)dataSourceEnumerator.Current).Row.ItemArray;

                // Render the <tr> tag.
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);

                // Render the fields of the row.
                for(int col = 0; col<dataArray.GetLength(0)
 ; col++)
                {
                    //Render the <td> tag, the field data and
 the </td> tag.
                    writer.RenderBeginTag(HtmlTextWriterTag.Td);
                    writer.Write(dataArray[col]);
                    writer.RenderEndTag();
                }
                // Render the </tr> tag.
                writer.RenderEndTag();
            }
            // Render the </table> tag.
            writer.RenderEndTag();
        }

        // Data binding consists of saving an enumerator for the data.
        protected override void PerformDataBinding(IEnumerable
 data)
        {
            dataSourceEnumerator = data.GetEnumerator();
        }
    }

    // MyDataBoundAdapter modifies a MyDataBound control to display
 a
    // grid as a list with row separators.
    [AspNetHostingPermission(SecurityAction.Demand,
        Level = AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand,
        Level = AspNetHostingPermissionLevel.Minimal)]
    public class MyDataBoundAdapter :
        System.Web.UI.WebControls.Adapters.DataBoundControlAdapter
    {
        // Returns a strongly-typed reference to the MyDataBound control.
        public new MyDataBound Control
        {
            get
            {
                return (MyDataBound)base.Control;
            }
        }

        // One-dimensional list for the grid data.
        ArrayList dataArray = new ArrayList();

        // Copy grid data to one-dimensional list, add row separators.
        protected override void PerformDataBinding(IEnumerable
 data)
        {
            IEnumerator dataSourceEnumerator = data.GetEnumerator();

            // Iterate through the table rows.
            while (dataSourceEnumerator.MoveNext())
            {
                // Add the next data row to the ArrayList.
                dataArray.AddRange(
                    ((DataRowView)dataSourceEnumerator.Current).Row.ItemArray);

                // Add a separator to the ArrayList.
                dataArray.Add("----------");
            }
        }

        // Render the data source as a one-dimensional list.
        protected override void RenderContents(
            System.Web.UI.HtmlTextWriter writer)
        {
            // Render the data list.
            for( int col=0; col<dataArray.Count;col++)
            {
                writer.Write(dataArray[col]);
                writer.WriteBreak();
            }
        }
    }
}

3 番目のコード例では、構成ファイルを使用して、Microsoft Internet Explorer ブラウザ用の MyDataBound コントロールにはコントロール アダプタを使用せず、Openwave UP ブラウザ用の MyDataBound コントロールには MyDataBoundAdapter を使用するように指定しています。

.NET Framework のセキュリティ.NET Framework のセキュリティ
継承階層継承階層
System.Object
   System.Web.UI.Adapters.ControlAdapter
     System.Web.UI.WebControls.Adapters.WebControlAdapter
      System.Web.UI.WebControls.Adapters.DataBoundControlAdapter
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DataBoundControlAdapter メンバ
System.Web.UI.WebControls.Adapters 名前空間
DataBoundControl クラス
BaseDataBoundControl クラス
WebControl クラス
ControlAdapter
WebControlAdapter
System.Web.UI.Control

DataBoundControlAdapter コンストラクタ

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

DataBoundControlAdapter クラスの新しいインスタンスを初期化します。

名前空間: System.Web.UI.WebControls.Adapters
アセンブリ: System.Web (system.web.dll 内)
構文構文

Dim instance As New DataBoundControlAdapter
public DataBoundControlAdapter ()
public:
DataBoundControlAdapter ()
public DataBoundControlAdapter ()
public function DataBoundControlAdapter ()
解説解説

.NET Framework は、対応する DataBoundControlAdapter オブジェクトを生成するときに、DataBoundControlAdapter クラスの新しいインスタンスを内部的に生成します。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DataBoundControlAdapter クラス
DataBoundControlAdapter メンバ
System.Web.UI.WebControls.Adapters 名前空間
DataBoundControl クラス
BaseDataBoundControl クラス
WebControl クラス
ControlAdapter
WebControlAdapter
System.Web.UI.Control

DataBoundControlAdapter プロパティ


プロテクト プロパティプロテクト プロパティ

  名前 説明
プロテクト プロパティ Browser  現在の HTTP 要求の作成元であるクライアントのブラウザ機能への参照を取得します。 ( ControlAdapter から継承されます。)
プロテクト プロパティ Control このコントロール アダプタに関連付けられた DataBoundControl オブジェクトへの、厳密に型指定された参照を取得します。
プロテクト プロパティ IsEnabled  Web コントロールおよびそのすべての親コントロールが有効になっているかどうかを示す値を取得します。 ( WebControlAdapter から継承されます。)
プロテクト プロパティ Page  このアダプタに関連付けられたコントロールが配置されているページへの参照を取得します。 ( ControlAdapter から継承されます。)
プロテクト プロパティ PageAdapter  関連付けられたコントロールが配置されているページのページ アダプタへの参照を取得します。 ( ControlAdapter から継承されます。)
参照参照

関連項目

DataBoundControlAdapter クラス
System.Web.UI.WebControls.Adapters 名前空間
DataBoundControl クラス
BaseDataBoundControl クラス
WebControl クラス
ControlAdapter
WebControlAdapter
System.Web.UI.Control

DataBoundControlAdapter メソッド


パブリック メソッドパブリック メソッド

プロテクト メソッドプロテクト メソッド
  名前 説明
プロテクト メソッド BeginRender  コントロールの表示前に呼び出されます。派生アダプタ クラスで、HTML ブラウザには必要ではなくても特定のターゲットには必要な開始タグを生成します。 ( ControlAdapter から継承されます。)
プロテクト メソッド CreateChildControls  複合コントロールのターゲット固有の子コントロールを作成します。 ( ControlAdapter から継承されます。)
プロテクト メソッド EndRender  コントロールの表示後に呼び出されます。派生アダプタ クラスで、HTML ブラウザには必要ではなくても特定のターゲットには必要な終了タグを生成します。 ( ControlAdapter から継承されます。)
プロテクト メソッド Finalize  Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。)
プロテクト メソッド LoadAdapterControlState  このコントロール アダプタに関連付けられたコントロールが配置されているページに対する以前の要求時に SaveAdapterControlState によって保存された、アダプタのコントロール状態情報を読み込みます。 ( ControlAdapter から継承されます。)
プロテクト メソッド LoadAdapterViewState  このコントロール アダプタに関連付けられたコントロールが配置されているページに対する以前の要求時に SaveAdapterViewState によって保存された、アダプタのビューステートを読み込みます。 ( ControlAdapter から継承されます。)
プロテクト メソッド MemberwiseClone  現在の Object の簡易コピーを作成します。 ( Object から継承されます。)
プロテクト メソッド OnInit  関連付けられたコントロールの OnInit メソッドをオーバーライドします。 ( ControlAdapter から継承されます。)
プロテクト メソッド OnLoad  関連付けられたコントロールの OnLoad メソッドをオーバーライドします。 ( ControlAdapter から継承されます。)
プロテクト メソッド OnPreRender  関連付けられたコントロールの OnPreRender メソッドをオーバーライドします。 ( ControlAdapter から継承されます。)
プロテクト メソッド OnUnload  関連付けられたコントロールの OnUnload メソッドをオーバーライドします。 ( ControlAdapter から継承されます。)
プロテクト メソッド PerformDataBinding 関連付けられている DataBoundControl オブジェクトのデータ ソースのデータをコントロール アダプタにバインドします。
プロテクト メソッド Render  コントロール アダプタの割り当て先であるコントロールのターゲット固有のマークアップを生成します。 ( WebControlAdapter から継承されます。)
プロテクト メソッド RenderBeginTag  対象のブラウザに送信されるマークアップ内に Web コントロールの開始タグを作成します。 ( WebControlAdapter から継承されます。)
プロテクト メソッド RenderChildren  コントロール アダプタの割り当て先である複合コントロールに含まれる子コントロールのターゲット固有のマークアップを生成します。 ( ControlAdapter から継承されます。)
プロテクト メソッド RenderContents  コントロール アダプタの割り当て先である Web コントロールのターゲット固有の内部マークアップを生成します。 ( WebControlAdapter から継承されます。)
プロテクト メソッド RenderEndTag  対象のブラウザに送信されるマークアップ内に Web コントロールの終了タグを作成します。 ( WebControlAdapter から継承されます。)
プロテクト メソッド SaveAdapterControlState  コントロール アダプタのコントロール状態情報を保存します。 ( ControlAdapter から継承されます。)
プロテクト メソッド SaveAdapterViewState  コントロール アダプタのビューステート情報を保存します。 ( ControlAdapter から継承されます。)
参照参照

関連項目

DataBoundControlAdapter クラス
System.Web.UI.WebControls.Adapters 名前空間
DataBoundControl クラス
BaseDataBoundControl クラス
WebControl クラス
ControlAdapter
WebControlAdapter
System.Web.UI.Control

DataBoundControlAdapter メンバ

アダプタが関連付けられている DataBoundControl オブジェクトの、特定のブラウザ要求に対する動作をカスタマイズします。

DataBoundControlAdapter データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド DataBoundControlAdapter DataBoundControlAdapter クラスの新しいインスタンスを初期化します。
プロテクト プロパティプロテクト プロパティ
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
  名前 説明
プロテクト メソッド BeginRender  コントロールの表示前に呼び出されます。派生アダプタ クラスで、HTML ブラウザには必要ではなくても特定のターゲットには必要な開始タグを生成します。 (ControlAdapter から継承されます。)
プロテクト メソッド CreateChildControls  複合コントロールのターゲット固有の子コントロールを作成します。 (ControlAdapter から継承されます。)
プロテクト メソッド EndRender  コントロールの表示後に呼び出されます。派生アダプタ クラスで、HTML ブラウザには必要ではなくても特定のターゲットには必要な終了タグを生成します。 (ControlAdapter から継承されます。)
プロテクト メソッド Finalize  Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
プロテクト メソッド LoadAdapterControlState  このコントロール アダプタに関連付けられたコントロールが配置されているページに対する以前の要求時に SaveAdapterControlState によって保存された、アダプタのコントロール状態情報を読み込みます。 (ControlAdapter から継承されます。)
プロテクト メソッド LoadAdapterViewState  このコントロール アダプタに関連付けられたコントロールが配置されているページに対する以前の要求時に SaveAdapterViewState によって保存された、アダプタのビューステートを読み込みます。 (ControlAdapter から継承されます。)
プロテクト メソッド MemberwiseClone  現在の Object の簡易コピーを作成します。 (Object から継承されます。)
プロテクト メソッド OnInit  関連付けられたコントロールの OnInit メソッドをオーバーライドします。 (ControlAdapter から継承されます。)
プロテクト メソッド OnLoad  関連付けられたコントロールの OnLoad メソッドをオーバーライドします。 (ControlAdapter から継承されます。)
プロテクト メソッド OnPreRender  関連付けられたコントロールの OnPreRender メソッドをオーバーライドします。 (ControlAdapter から継承されます。)
プロテクト メソッド OnUnload  関連付けられたコントロールの OnUnload メソッドをオーバーライドします。 (ControlAdapter から継承されます。)
プロテクト メソッド PerformDataBinding 関連付けられている DataBoundControl オブジェクトのデータ ソースのデータをコントロール アダプタにバインドします。
プロテクト メソッド Render  コントロール アダプタの割り当て先であるコントロールのターゲット固有のマークアップを生成します。 (WebControlAdapter から継承されます。)
プロテクト メソッド RenderBeginTag  対象のブラウザに送信されるマークアップ内に Web コントロールの開始タグを作成します。 (WebControlAdapter から継承されます。)
プロテクト メソッド RenderChildren  コントロール アダプタの割り当て先である複合コントロールに含まれる子コントロールのターゲット固有のマークアップを生成します。 (ControlAdapter から継承されます。)
プロテクト メソッド RenderContents  コントロール アダプタの割り当て先である Web コントロールのターゲット固有の内部マークアップを生成します。 (WebControlAdapter から継承されます。)
プロテクト メソッド RenderEndTag  対象のブラウザに送信されるマークアップ内に Web コントロールの終了タグを作成します。 (WebControlAdapter から継承されます。)
プロテクト メソッド SaveAdapterControlState  コントロール アダプタのコントロール状態情報を保存します。 (ControlAdapter から継承されます。)
プロテクト メソッド SaveAdapterViewState  コントロール アダプタのビューステート情報を保存します。 (ControlAdapter から継承されます。)
参照参照

関連項目

DataBoundControlAdapter クラス
System.Web.UI.WebControls.Adapters 名前空間
DataBoundControl クラス
BaseDataBoundControl クラス
WebControl クラス
ControlAdapter
WebControlAdapter
System.Web.UI.Control



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「DataBoundControlAdapter」の関連用語

DataBoundControlAdapterのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



DataBoundControlAdapterのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS