Поделиться через


DataBoundControlAdapter.PerformDataBinding(IEnumerable) Метод

Определение

Связывает данные в источнике данных связанного объекта DataBoundControl с адаптером элемента управления.

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)

Параметры

data
IEnumerable

IEnumerable из Object для связывания с производным объектом DataBoundControl.

Примеры

В следующем примере кода показано, как переопределить коллекцию PerformDataBinding , чтобы сохранить источник данных в одномерный ArrayList объект и добавить разделители строк. Здесь также показано, как переопределить RenderContents метод для отрисовки ArrayList в виде списка полей, разделенных тегами <br /> .

// 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

Комментарии

Метод PerformDataBinding вызывается вместо метода , DataBoundControl.PerformDataBinding когда DataBoundControlAdapter адаптер элемента управления присоединен к элементу управления, производному от DataBoundControl класса .

Как правило, переопределение DataBoundControl.PerformDataBinding выполняет итерацию данных, при необходимости создавая уникальные имена и значения и сохраняя их во внутренней коллекции. Как правило, RenderContents или аналогичный DataBoundControl метод объекта заполняет пользовательский интерфейс или дочерние элементы управления из этой внутренней коллекции.

Примечания для тех, кто наследует этот метод

Переопределите метод, PerformDataBinding(IEnumerable) если для целевого браузера требуется специализированная логика привязки, например, когда имена элементов должны быть созданы иначе, чем для общего использования элемента управления.

Базовый PerformDataBinding(IEnumerable) метод вызывает PerformDataBinding(IEnumerable). Базовый PerformDataBinding(IEnumerable) метод следует вызывать только в том случае, если требуется функциональность привязки данных .DataBoundControl

Применяется к

См. также раздел