Compartir a través de


DataBoundControlAdapter.PerformDataBinding(IEnumerable) Método

Definición

Enlaza los datos del origen de datos del objeto DataBoundControl asociado al adaptador de control.

protected public:
 virtual void PerformDataBinding(System::Collections::IEnumerable ^ data);
protected internal virtual void PerformDataBinding (System.Collections.IEnumerable data);
abstract member PerformDataBinding : System.Collections.IEnumerable -> unit
override this.PerformDataBinding : System.Collections.IEnumerable -> unit
Protected Friend Overridable Sub PerformDataBinding (data As IEnumerable)

Parámetros

data
IEnumerable

IEnumerable de Object que se enlaza al DataBoundControl derivado.

Ejemplos

En el ejemplo de código siguiente se muestra cómo invalidar la PerformDataBinding colección para guardar el origen de datos en un objeto unidimensional ArrayList y agregar separadores de filas. También muestra cómo invalidar el RenderContents método para representar como ArrayList una lista de campos separados por <br /> etiquetas.

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

Comentarios

Se PerformDataBinding llama al método en lugar del DataBoundControl.PerformDataBinding método cuando se adjunta un DataBoundControlAdapter adaptador de control a un control derivado de la DataBoundControl clase .

Normalmente, una invalidación de DataBoundControl.PerformDataBinding recorre en iteración los datos, crea nombres y valores distintos cuando es necesario y lo guarda en una colección interna. Normalmente, RenderContents o un método similar de , DataBoundControl rellenará la interfaz de usuario o los controles secundarios de esa colección interna.

Notas a los desarrolladores de herederos

Invalide el PerformDataBinding(IEnumerable) método cuando se requiere lógica de enlace especializada para el explorador de destino; por ejemplo, cuando los nombres de elementos se deben construir de forma diferente a para el uso general del control.

El PerformDataBinding(IEnumerable) método base llama a PerformDataBinding(IEnumerable). Solo debe llamar al PerformDataBinding(IEnumerable) método base si necesita la funcionalidad de enlace de datos de DataBoundControl.

Se aplica a

Consulte también