DataBoundControlAdapter Klas

Definitie

Hiermee past u het gedrag van een DataBoundControl object aan waarmee de adapter is gekoppeld voor specifieke browseraanvragen.

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
Overname
DataBoundControlAdapter

Voorbeelden

In de volgende codevoorbeelden worden twee afgeleide besturingselementen gemaakt en gebruikt:

  • De MyDataBound klasse, afgeleid van DataBoundControl, is een eenvoudig alleen-lezen rasterbesturingselement.

  • De MyDataBoundAdapter klasse, afgeleid van DataBoundControlAdapter, geeft de rastergegevens weer als een eendimensionale lijst met rijscheidingstekens, geschikt voor browsers met kleine schermen.

In het eerste codevoorbeeld wordt een webpagina gebruikt om een MyDataBound besturingselement te declareren en een exemplaar van ObjectDataSource die gegevens in de vorm van een DataView object te geven.

Het tweede codevoorbeeld bevat de afgeleide MyDataBound en MyDataBoundAdapter klassen:

  • De MyDataBound klasse overschrijft de methode voor het PerformDataBinding opslaan van een IEnumerator verzameling voor de gegevensbron en overschrijft de RenderContents methode om de gegevensbron weer te geven als HTML <table>.

  • De MyDataBoundAdapter klasse overschrijft PerformDataBinding om de gegevensbron op te slaan in een eendimensionale ArrayList en rijscheidingstekens toe te voegen. Hiermee wordt de RenderContents weergave als een lijst met velden gescheiden door ArrayList tags overschreven<br />.

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

In het derde codevoorbeeld wordt een configuratiebestand gebruikt om op te geven dat er geen besturingsadapter moet worden gebruikt met MyDataBound-besturingselementen voor Microsoft Internet Explorer browsers en dat een MyDataBoundAdapter wordt gebruikt met MyDataBound-besturingselementen voor Openwave UP-browsers.

Opmerkingen

Een besturingselement dat is afgeleid van de DataBoundControl klasse, is gebonden aan een gegevensbron en genereert de gebruikersinterface of onderliggende besturingshiërarchie door de items in de gegevensbron te inventariseren waaraan het is gebonden. DataBoundControl is een abstracte basisklasse die de algemene kenmerken definieert van alle besturingselementen die kunnen worden gebonden aan een gegevensbron, zoals de DataGrid en ListBox besturingselementen. Zie DataBoundControl voor meer informatie.

Een DataBoundControlAdapter wijzigt het gedrag van een DataBoundControl voor een specifieke browser of klasse van browsers, of fungeert als een filter op een bepaalde mogelijkheid. Veel van de aanpassingsvermogen in renderinggedrag kan worden ingekapseld in de gespecialiseerde klassen die zijn afgeleid van de HtmlTextWriter klasse. Daarom is het waarschijnlijk dat één adapter kan worden gebruikt voor een aantal gedrag van browserklassen of dat het opnemen van de aanpassingsvermogen in de HtmlTextWriter klassen het gebruik van een besturingsadapter onnodig kan maken.

Elk besturingselement heeft expliciete toewijzingen aan adapters via de definitiebestanden van de browser, als er vermeldingen in deze bestanden zijn <controlAdapter> . Zo gebruikt elke toegang tot de Adapter eigenschap van het DataBoundControl object dat HttpBrowserCapabilities is geëxtraheerd uit de definitiebestanden van de browser om de zoekactie uit te voeren voor de toewijzing van de adapter om te beheren.

Tijdens de verwerking onderschept het .NET Framework aanroepen naar de methoden van een besturingselement dat specifiek kan zijn voor een browser. Als een besturingsadapter is gekoppeld, roept het .NET Framework de bijbehorende adaptermethoden aan. Zie ControlAdapter voor meer informatie.

De methode M:System.Web.UI.WebControls.Adapters.DataBoundControlAdapter.PerformDataBinding(System.Collections.IEnumerable) verbindt een enumerable verzameling aan de bijbehorende DataBoundControlverzameling. De Control eigenschap retourneert een sterk getypte verwijzing naar de DataBoundControl.

Constructors

Name Description
DataBoundControlAdapter()

Initialiseert een nieuw exemplaar van de DataBoundControlAdapter klasse.

Eigenschappen

Name Description
Browser

Haalt een verwijzing op naar de browsermogelijkheden van de client die de huidige HTTP-aanvraag maakt.

(Overgenomen van ControlAdapter)
Control

Haalt een sterk getypte verwijzing op naar het DataBoundControl object dat is gekoppeld aan deze besturingsadapter.

IsEnabled

Hiermee wordt een waarde opgehaald die aangeeft of het webbesturingselement en alle bovenliggende besturingselementen zijn ingeschakeld.

(Overgenomen van WebControlAdapter)
Page

Hiermee wordt een verwijzing naar de pagina opgehaald waar het besturingselement dat aan deze adapter is gekoppeld.

(Overgenomen van ControlAdapter)
PageAdapter

Hiermee wordt een verwijzing naar de paginaadapter opgehaald voor de pagina waar het bijbehorende besturingselement zich bevindt.

(Overgenomen van ControlAdapter)

Methoden

Name Description
BeginRender(HtmlTextWriter)

Wordt aangeroepen vóór het weergeven van een besturingselement. In een afgeleide adapterklasse worden openingstags gegenereerd die vereist zijn voor een specifiek doel, maar niet nodig zijn voor HTML-browsers.

(Overgenomen van ControlAdapter)
CreateChildControls()

Hiermee maakt u de doelspecifieke onderliggende besturingselementen voor een samengesteld besturingselement.

(Overgenomen van ControlAdapter)
EndRender(HtmlTextWriter)

Aangeroepen na het weergeven van een besturingselement. In een afgeleide adapterklasse worden slottags gegenereerd die vereist zijn voor een specifiek doel, maar niet nodig zijn voor HTML-browsers.

(Overgenomen van ControlAdapter)
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
LoadAdapterControlState(Object)

Laadt informatie over de status van de adapter die tijdens een vorige aanvraag is opgeslagen SaveAdapterControlState() op de pagina waar het besturingselement dat aan deze besturingsadapter is gekoppeld.

(Overgenomen van ControlAdapter)
LoadAdapterViewState(Object)

Laadt informatie over de weergavestatus van de adapter die is opgeslagen SaveAdapterViewState() tijdens een vorige aanvraag op de pagina waar het besturingselement dat aan deze besturingsadapter is gekoppeld, zich bevindt.

(Overgenomen van ControlAdapter)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
OnInit(EventArgs)

Hiermee wordt de OnInit(EventArgs) methode voor het bijbehorende besturingselement overschreven.

(Overgenomen van ControlAdapter)
OnLoad(EventArgs)

Hiermee wordt de OnLoad(EventArgs) methode voor het bijbehorende besturingselement overschreven.

(Overgenomen van ControlAdapter)
OnPreRender(EventArgs)

Hiermee wordt de OnPreRender(EventArgs) methode voor het bijbehorende besturingselement overschreven.

(Overgenomen van ControlAdapter)
OnUnload(EventArgs)

Hiermee wordt de OnUnload(EventArgs) methode voor het bijbehorende besturingselement overschreven.

(Overgenomen van ControlAdapter)
PerformDataBinding(IEnumerable)

Verbindt de gegevens in de gegevensbron van het gekoppelde DataBoundControl object met de besturingsadapter.

Render(HtmlTextWriter)

Hiermee genereert u de doelspecifieke markeringen voor het besturingselement waaraan de besturingsadapter is gekoppeld.

(Overgenomen van WebControlAdapter)
RenderBeginTag(HtmlTextWriter)

Hiermee maakt u de begintag voor het web besturingselement in de markeringen die naar de doelbrowser worden verzonden.

(Overgenomen van WebControlAdapter)
RenderChildren(HtmlTextWriter)

Hiermee genereert u de doelspecifieke opmaak voor de onderliggende besturingselementen in een samengesteld besturingselement waaraan de besturingsadapter is gekoppeld.

(Overgenomen van ControlAdapter)
RenderContents(HtmlTextWriter)

Hiermee genereert u de doelspecifieke binnenmarkeringen voor het webbesturingselement waaraan de besturingsadapter is gekoppeld.

(Overgenomen van WebControlAdapter)
RenderEndTag(HtmlTextWriter)

Hiermee maakt u de eindtag voor het webbesturingselement in de markeringen die naar de doelbrowser worden verzonden.

(Overgenomen van WebControlAdapter)
SaveAdapterControlState()

Hiermee wordt informatie over de controlestatus voor de besturingsadapter opgeslagen.

(Overgenomen van ControlAdapter)
SaveAdapterViewState()

Hiermee wordt informatie over de weergavestatus voor de besturingsadapter opgeslagen.

(Overgenomen van ControlAdapter)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Van toepassing op

Zie ook