Freigeben über


DataBoundControlAdapter Klasse

Definition

Passt das Verhalten eines DataBoundControl-Objekts an, dem der Adapter für bestimmte Browseranforderungen zugeordnet ist.

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

Beispiele

In den folgenden Codebeispielen werden zwei abgeleitete Steuerelemente erstellt und verwendet:

  • Die MyDataBound von DataBoundControlabgeleitete -Klasse ist ein einfaches schreibgeschütztes Rastersteuerelement.

  • Die MyDataBoundAdapter von DataBoundControlAdapterabgeleitete -Klasse rendert die Rasterdaten als eindimensionale Liste mit Zeilentrennzeichen, die für kleine Bildschirmbrowser geeignet sind.

Im ersten Codebeispiel wird eine Webseite verwendet, um ein MyDataBound Steuerelement und eine Instanz von ObjectDataSource zu deklarieren, die Daten in Form eines DataView -Objekts bereitstellt.

Das zweite Codebeispiel enthält die abgeleiteten MyDataBound Klassen und MyDataBoundAdapter :

  • Die MyDataBound -Klasse überschreibt die PerformDataBinding -Methode zum Speichern einer IEnumerator Auflistung für die Datenquelle und überschreibt die RenderContents -Methode, um die Datenquelle als HTML-Datei <table>zu rendern.

  • Die MyDataBoundAdapter -Klasse überschreibt PerformDataBinding , um die Datenquelle in einem eindimensionalen ArrayList zu speichern und Zeilentrennzeichen hinzuzufügen. Es überschreibt, um die als Liste von Feldern zu rendern RenderContents , die ArrayList durch Tags getrennt sind <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

Im dritten Codebeispiel wird eine Konfigurationsdatei verwendet, um anzugeben, dass kein Steuerelementadapter mit MyDataBound Steuerelementen für Microsoft Internet Explorer-Browsern verwendet werden soll, und dass ein MyDataBoundAdapter mit MyDataBound Steuerelementen für Openwave UP-Browser verwendet wird.

Hinweise

Ein von der DataBoundControl -Klasse abgeleitetes Steuerelement ist an eine Datenquelle gebunden und generiert seine Benutzeroberfläche oder untergeordnete Steuerelementhierarchie, indem die Elemente in der Datenquelle aufgelistet werden, an die es gebunden ist. DataBoundControlist eine abstrakte Basisklasse, die die allgemeinen Merkmale aller Steuerelemente definiert, die an eine Datenquelle gebunden werden können, z. B. das - und ListBox -DataGridSteuerelement. Weitere Informationen finden Sie unter DataBoundControl.

Ein DataBoundControlAdapter ändert das Verhalten eines DataBoundControl für einen bestimmten Browser oder eine bestimmte Browserklasse oder fungiert als Filter für einige Funktionen. Ein Großteil der Anpassungsfähigkeit des Renderingverhaltens kann in den spezialisierten Klassen gekapselt werden, die von der HtmlTextWriter -Klasse abgeleitet werden. Daher ist es wahrscheinlich, dass ein einzelner Adapter für eine Reihe von Browserklassenverhalten verwendet werden kann, oder dass die Einbeziehung der Anpassungsfähigkeit in die HtmlTextWriter Klassen die Verwendung eines Steuerelementadapters unnötig machen kann.

Jedes Steuerelement verfügt über explizite Zuordnungen zu Adaptern über die BROWSER-Definitionsdateien, wenn in diesen Dateien Einträge vorhanden sind <controlAdapter> . Daher verwendet jeder Zugriff auf die Adapter -Eigenschaft des DataBoundControl -Objekts das HttpBrowserCapabilities aus den BROWSER-Definitionsdateien extrahierte Objekt, um die Suche nach der Zuordnung des zu steuernden Adapters durchzuführen.

Während der Verarbeitung fängt die .NET Framework Aufrufe der Methoden eines Steuerelements ab, die browserspezifisch sein können. Wenn ein Steuerelementadapter angefügt ist, ruft der .NET Framework die zugeordneten Adaptermethoden auf. Weitere Informationen finden Sie unter ControlAdapter.

Die M:System.Web.UI.WebControls.Adapters.DataBoundControlAdapter.PerformDataBinding(System.Collections.IEnumerable)-Methode bindet eine aufzählbare Auflistung an die zugeordnete DataBoundControl. Die Control -Eigenschaft gibt einen stark typisierten Verweis auf zurück DataBoundControl.

Konstruktoren

DataBoundControlAdapter()

Initialisiert eine neue Instanz der DataBoundControlAdapter-Klasse.

Eigenschaften

Browser

Ruft einen Verweis auf die Browserfunktionen des Clients ab, durch den die aktuelle HTTP-Anforderung erfolgt.

(Geerbt von ControlAdapter)
Control

Ruft einen stark typisierten Verweis auf das DataBoundControl-Objekt ab, das diesem Steuerelementadapter zugeordnet ist.

IsEnabled

Ruft einen Wert ab, der angibt, ob das Websteuerelement und alle übergeordneten Steuerelemente aktiviert sind.

(Geerbt von WebControlAdapter)
Page

Ruft einen Verweis auf die Seite ab, auf der sich das diesem Adapter zugeordnete Steuerelement befindet.

(Geerbt von ControlAdapter)
PageAdapter

Ruft einen Verweis auf den Seitenadapter für die Seite ab, auf der sich das zugeordnete Steuerelement befindet.

(Geerbt von ControlAdapter)

Methoden

BeginRender(HtmlTextWriter)

Wird vor dem Rendering eines Steuerelements aufgerufen. Generiert in einer abgeleiteten Adapterklasse öffnende Tags, die für ein bestimmtes Ziel erforderlich sind, von HTML-Browsern jedoch nicht benötigt werden.

(Geerbt von ControlAdapter)
CreateChildControls()

Erstellt die zielspezifischen untergeordneten Steuerelemente für ein zusammengesetztes Steuerelement.

(Geerbt von ControlAdapter)
EndRender(HtmlTextWriter)

Wird nach dem Rendering eines Steuerelements aufgerufen. Generiert in einer abgeleiteten Adapterklasse schließende Tags, die für ein bestimmtes Ziel erforderlich sind, von HTML-Browsern jedoch nicht benötigt werden.

(Geerbt von ControlAdapter)
Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
LoadAdapterControlState(Object)

Lädt Steuerelementzustandsinformationen des Adapters, die von SaveAdapterControlState() während einer vorherigen Anforderung der Seite, auf der sich das diesem Steuerelementadapter zugeordnete Steuerelement befindet, gespeichert wurden.

(Geerbt von ControlAdapter)
LoadAdapterViewState(Object)

Lädt Ansichtszustandsinformationen des Adapters, die von SaveAdapterViewState() während einer vorherigen Anforderung der Seite, auf der sich das diesem Steuerelementadapter zugeordnete Steuerelement befindet, gespeichert wurden.

(Geerbt von ControlAdapter)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
OnInit(EventArgs)

Überschreibt die OnInit(EventArgs)-Methode für das zugeordnete Steuerelement.

(Geerbt von ControlAdapter)
OnLoad(EventArgs)

Überschreibt die OnLoad(EventArgs)-Methode für das zugeordnete Steuerelement.

(Geerbt von ControlAdapter)
OnPreRender(EventArgs)

Überschreibt die OnPreRender(EventArgs)-Methode für das zugeordnete Steuerelement.

(Geerbt von ControlAdapter)
OnUnload(EventArgs)

Überschreibt die OnUnload(EventArgs)-Methode für das zugeordnete Steuerelement.

(Geerbt von ControlAdapter)
PerformDataBinding(IEnumerable)

Bindet die Daten in der Datenquelle des zugeordneten DataBoundControl-Objekts an den Steuerelementadapter.

Render(HtmlTextWriter)

Generiert das zielspezifische Markup für das Steuerelement, an das der Steuerelementadapter angefügt ist.

(Geerbt von WebControlAdapter)
RenderBeginTag(HtmlTextWriter)

Erstellt das Anfangstag für das Websteuerelement im Markup, das an den Zielbrowser übertragen wird.

(Geerbt von WebControlAdapter)
RenderChildren(HtmlTextWriter)

Generiert das zielspezifische Markup für die untergeordneten Steuerelemente in einem zusammengesetzten Steuerelement, an das der Steuerelementadapter angefügt ist.

(Geerbt von ControlAdapter)
RenderContents(HtmlTextWriter)

Generiert das zielspezifische innere Markup für das Websteuerelement, an das der Steuerelementadapter angefügt wird.

(Geerbt von WebControlAdapter)
RenderEndTag(HtmlTextWriter)

Erstellt das Endtag für das Websteuerelement im Markup, das an den Zielbrowser übertragen wird.

(Geerbt von WebControlAdapter)
SaveAdapterControlState()

Speichert Steuerelementzustandsinformationen für den Steuerelementadapter.

(Geerbt von ControlAdapter)
SaveAdapterViewState()

Speichert Ansichtszustandsinformationen für den Steuerelementadapter.

(Geerbt von ControlAdapter)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für:

Weitere Informationen