DataBoundControlAdapter Sınıf

Tanım

Belirli tarayıcı istekleri için bağdaştırıcının ilişkilendirildiği bir DataBoundControl nesnenin davranışını özelleştirir.

public ref class DataBoundControlAdapter : System::Web::UI::WebControls::Adapters::WebControlAdapter
public class DataBoundControlAdapter : System.Web.UI.WebControls.Adapters.WebControlAdapter
type DataBoundControlAdapter = class
    inherit WebControlAdapter
Public Class DataBoundControlAdapter
Inherits WebControlAdapter
Devralma
DataBoundControlAdapter

Örnekler

Aşağıdaki kod örnekleri türetilmiş iki denetim oluşturur ve kullanır:

  • MyDataBound sınıfından DataBoundControltüretilen sınıfı, basit bir salt okunur kılavuz denetimidir.

  • MyDataBoundAdapter sınıfından DataBoundControlAdaptertüretilen sınıfı, kılavuz verilerini küçük ekran tarayıcıları için uygun satır ayırıcılarla tek boyutlu bir liste olarak işler.

İlk kod örneği, bir MyDataBound denetimi ve nesnesi biçiminde veri sağlayan bir örneğini ObjectDataSource bildirmek için bir DataView Web sayfası kullanır.

İkinci kod örneği türetilmiş MyDataBound ve MyDataBoundAdapter sınıflarını içerir:

  • MyDataBound sınıfıPerformDataBinding, veri kaynağı için bir IEnumerator koleksiyonu kaydetmek için yöntemini geçersiz kılar ve veri kaynağını HTML <table>olarak işlemek için yöntemini geçersiz kılarRenderContents.

  • sınıfıMyDataBoundAdapter, veri kaynağını tek boyutlu ArrayList bir dosyaya kaydetmek ve satır ayırıcıları eklemek için geçersiz kılarPerformDataBinding. Öğesini etiketlerle ArrayList ayrılmış <br /> bir alan listesi olarak işlemek için geçersiz kılarRenderContents.

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

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

            dataSourceEnumerator = data.GetEnumerator()
        End Sub
    End Class

    ' 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

        ' 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
    End Class
End Namespace ' MyControls

Üçüncü kod örneği, Microsoft Internet Explorer tarayıcıları için denetimlerle MyDataBound hiçbir denetim bağdaştırıcısının kullanılmadığını ve openwave UP tarayıcılarının denetimleriyle MyDataBound birlikte kullanılacağını belirtmek için bir MyDataBoundAdapter yapılandırma dosyası kullanır.

Açıklamalar

sınıfından DataBoundControl türetilen bir denetim bir veri kaynağına bağlıdır ve bağlı olduğu veri kaynağındaki öğeleri numaralandırarak kullanıcı arabirimini veya alt denetim hiyerarşisini oluşturur. DataBoundControl ve denetimleri gibi DataGridListBox bir veri kaynağına bağlanabilen tüm denetimlerin ortak özelliklerini tanımlayan soyut bir temel sınıftır. Daha fazla bilgi için bkz. DataBoundControl.

, DataBoundControlAdapter belirli bir tarayıcı veya tarayıcı sınıfı için bir DataBoundControl davranışını değiştirir veya bazı özelliklerde filtre görevi görür. İşleme davranışındaki uyarlanabilirliğin çoğu, sınıfından türetilen HtmlTextWriter özel sınıflarda kapsüllenebilir. Bu nedenle, bir dizi tarayıcı sınıfı davranışı için tek bir bağdaştırıcının kullanılabilmesi veya uyarlanabilirliğin sınıflara HtmlTextWriter eklenmesi, bir denetim bağdaştırıcısının kullanılmasını gereksiz hale getirebilir.

Bu dosyalarda girdiler varsa, her denetimin .browser tanım dosyaları aracılığıyla bağdaştırıcılarla açık eşlemeleri vardır <controlAdapter> . Bu nedenle, özelliğine AdapterDataBoundControl yönelik tüm erişimler,.browser tanım dosyalarından ayıklanan nesneyi kullanarak HttpBrowserCapabilities , denetlenecek bağdaştırıcının eşlemesi için arama gerçekleştirir.

İşleme sırasında, .NET Framework tarayıcıya özgü olabilecek bir denetimin yöntemlerine çağrıları durdurur. Bir denetim bağdaştırıcısı takılıysa, .NET Framework ilişkili bağdaştırıcı yöntemlerini çağırır. Daha fazla bilgi için bkz. ControlAdapter.

M:System.Web.UI.WebControls.Adapters.DataBoundControlAdapter.PerformDataBinding(System.Collections.IEnumerable) yöntemi, ilişkili DataBoundControlöğesine numaralandırılabilir bir koleksiyon bağlar. özelliği, Control öğesine DataBoundControlkesin olarak belirlenmiş bir başvuru döndürür.

Oluşturucular

DataBoundControlAdapter()

DataBoundControlAdapter sınıfının yeni bir örneğini başlatır.

Özellikler

Browser

Geçerli HTTP isteğini yapan istemcinin tarayıcı özelliklerine bir başvuru alır.

(Devralındığı yer: ControlAdapter)
Control

Bu denetim bağdaştırıcısıyla ilişkili nesneye DataBoundControl kesin olarak belirlenmiş bir başvuru alır.

IsEnabled

Web denetiminin ve tüm üst denetimlerinin etkinleştirilip etkinleştirilmediğini belirten bir değer alır.

(Devralındığı yer: WebControlAdapter)
Page

Bu bağdaştırıcıyla ilişkili denetimin bulunduğu sayfaya başvuru alır.

(Devralındığı yer: ControlAdapter)
PageAdapter

İlişkili denetimin bulunduğu sayfanın sayfa bağdaştırıcısına başvuru alır.

(Devralındığı yer: ControlAdapter)

Yöntemler

BeginRender(HtmlTextWriter)

Denetimin işlenmesinden önce çağrılır. Türetilmiş bir bağdaştırıcı sınıfında, belirli bir hedef için gerekli olan ancak HTML tarayıcıları için gerekli olmayan açma etiketleri oluşturur.

(Devralındığı yer: ControlAdapter)
CreateChildControls()

Bileşik denetim için hedefe özgü alt denetimleri oluşturur.

(Devralındığı yer: ControlAdapter)
EndRender(HtmlTextWriter)

Denetimin işlenmesinden sonra çağrılır. Türetilmiş bir bağdaştırıcı sınıfında, belirli bir hedef için gerekli olan ancak HTML tarayıcıları için gerekli olmayan kapanış etiketleri oluşturur.

(Devralındığı yer: ControlAdapter)
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
LoadAdapterControlState(Object)

Bu denetim bağdaştırıcısıyla ilişkilendirilmiş denetimin bulunduğu sayfaya önceki bir istek sırasında tarafından SaveAdapterControlState() kaydedilen bağdaştırıcı denetim durumu bilgilerini yükler.

(Devralındığı yer: ControlAdapter)
LoadAdapterViewState(Object)

Bu denetim bağdaştırıcısıyla ilişkili denetimin bulunduğu sayfaya önceki bir istek sırasında tarafından SaveAdapterViewState() kaydedilen bağdaştırıcı görünümü durum bilgilerini yükler.

(Devralındığı yer: ControlAdapter)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
OnInit(EventArgs)

OnInit(EventArgs) İlişkili denetim için yöntemini geçersiz kılar.

(Devralındığı yer: ControlAdapter)
OnLoad(EventArgs)

OnLoad(EventArgs) İlişkili denetim için yöntemini geçersiz kılar.

(Devralındığı yer: ControlAdapter)
OnPreRender(EventArgs)

OnPreRender(EventArgs) İlişkili denetim için yöntemini geçersiz kılar.

(Devralındığı yer: ControlAdapter)
OnUnload(EventArgs)

OnUnload(EventArgs) İlişkili denetim için yöntemini geçersiz kılar.

(Devralındığı yer: ControlAdapter)
PerformDataBinding(IEnumerable)

İlişkili DataBoundControl nesnenin veri kaynağındaki verileri denetim bağdaştırıcısına bağlar.

Render(HtmlTextWriter)

Denetim bağdaştırıcısının bağlı olduğu denetim için hedefe özgü işaretlemeyi oluşturur.

(Devralındığı yer: WebControlAdapter)
RenderBeginTag(HtmlTextWriter)

Hedef tarayıcıya iletilen işaretlemede Web denetimi için başlangıç etiketini oluşturur.

(Devralındığı yer: WebControlAdapter)
RenderChildren(HtmlTextWriter)

Denetim bağdaştırıcısının bağlı olduğu bileşik denetimde alt denetimler için hedefe özgü işaretlemeyi oluşturur.

(Devralındığı yer: ControlAdapter)
RenderContents(HtmlTextWriter)

Denetim bağdaştırıcısının bağlı olduğu Web denetimi için hedefe özgü iç işaretlemeyi oluşturur.

(Devralındığı yer: WebControlAdapter)
RenderEndTag(HtmlTextWriter)

Hedef tarayıcıya iletilen işaretlemede Web denetimi için bitiş etiketini oluşturur.

(Devralındığı yer: WebControlAdapter)
SaveAdapterControlState()

Denetim bağdaştırıcısı için denetim durumu bilgilerini kaydeder.

(Devralındığı yer: ControlAdapter)
SaveAdapterViewState()

Denetim bağdaştırıcısının görünüm durumu bilgilerini kaydeder.

(Devralındığı yer: ControlAdapter)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır

Ayrıca bkz.