Como: Personalizar itens dinamicamente em DataList controle de servidor Web

Você pode personalizar itens no controle DataList dinamicamente, o que é útil se você desejar definir características de item com base nas informações disponíveis em tempo de execução.Este tópico contém dois exemplos que mostram como personalizar os itens em um controle DataList.

O primeiro exemplo de código mostra como personalizar um item individual quando a personalização não envolve dados.O exemplo exibe diferentes tipos de modelos com cores de plano de fundo diferentes.

O segundo exemplo de código mostra como personalizar o conteúdo de um item de controle DataList com base nos dados que sejam exibidos nela.O código examina o conteúdo de um rótulo associado a dados no item para extrair uma data (data de nascimento).Se a data de nascimento for a mesma que o mês atual, o item é realçado usando cores.

Exemplo

' Example 1
Private Sub DataList1_ItemCreated(ByVal sender As Object, _
        ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) _
        Handles DataList1.ItemCreated
    Select Case e.Item.ItemType
        Case ListItemType.Item
            e.Item.BackColor = Color.LightGoldenrodYellow
        Case ListItemType.AlternatingItem
            e.Item.BackColor = Color.DarkGoldenrod
        Case ListItemType.SelectedItem
            e.Item.BackColor = Color.Yellow
        Case Else
         ' Add code here to handle the header, footer, and
         ' separator templates.
    End Select
End Sub

' Example 2
Private Sub DataList1_ItemDataBound(ByVal sender As Object, _
        ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) _
        Handles DataList1.ItemDataBound
    Dim dob As DateTime
    Dim doblabel As Label
    doblabel = CType(e.Item.FindControl("Label1"), Label)
    dob = CType(doblabel.Text, DateTime)
    If dob.Month = Today.Month Then
        e.Item.BackColor = Color.Yellow
    End If
End Sub

Compilando o código

Esses exemplos requerem:

Programação robusta

A maneira mais confiável para extrair o valor de um controle em um controle modelo DataList é:

  1. Atribua uma identificação para o controle em tempo de design.

  2. Use o método FindControl do contêiner de nomeação (no exemplo, um objeto DataListItem).

O método FindControl retorna um objeto do tipo Control.Você deve converter este objeto para o tipo de controle apropriado.Se nenhum objeto for encontrado e você tentar extrair seu valor, o controle gera uma exceção do tipo NullReferenceException.

Consulte também

Tarefas

Como: Personalizar itens da DataList em time de execução

Conceitos

Identificação de Controles de Web Forms