DataBoundControlAdapter.PerformDataBinding(IEnumerable) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Associa os dados na fonte de dados do objeto DataBoundControl associado ao adaptador de controle.
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
Um IEnumerable de Object a ser associado ao DataBoundControl derivado.
Exemplos
O exemplo de código a seguir mostra como substituir a PerformDataBinding coleção para salvar a fonte de dados em um objeto unidimensional ArrayList e adicionar separadores de linha. Ele também mostra como substituir o RenderContents método para renderizar como ArrayList uma lista de campos separados por <br />
marcas.
// 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
Comentários
O PerformDataBinding método é chamado no lugar do DataBoundControl.PerformDataBinding método quando um DataBoundControlAdapter adaptador de controle é anexado a um controle derivado da DataBoundControl classe.
Normalmente, uma substituição de itera por meio de DataBoundControl.PerformDataBinding dados, criando nomes e valores distintos quando necessário e salva-os em uma coleção interna. Normalmente, RenderContents ou um método semelhante da interface do DataBoundControl usuário preencherá a interface do usuário ou os controles filho dessa coleção interna.
Notas aos Herdeiros
Substitua o PerformDataBinding(IEnumerable) método quando a lógica de associação especializada for necessária para o navegador de destino - por exemplo, quando os nomes de item devem ser construídos de forma diferente do uso geral do controle.
O PerformDataBinding(IEnumerable) método base chama PerformDataBinding(IEnumerable). Você deve chamar o PerformDataBinding(IEnumerable) método base somente se precisar da funcionalidade de associação de dados do DataBoundControl.