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:
Um controle DataList chamado DataList1 vinculado à tabela Funcionários do banco de dados Northwind.Para obter informações sobre acoplar um controle DataList a uma fonte de dados, consulte Como: Adicionar controles DataList do servidor Web a uma página da Web do ASP.NET.
Um modelo de item que contém pelo menos um controle Label chamado Label1.Esse rótulo deve ser vinculado ao campo BirthDate da tabela Funcionários.Para obter informações sobre a vinculação de controles a campos, consulte Visão geral de expressões de ligação de dados.
Programação robusta
A maneira mais confiável para extrair o valor de um controle em um controle modelo DataList é:
Atribua uma identificação para o controle em tempo de design.
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