Cómo: Personalizar elementos dinámicamente en el control de servidor Web DataList

Actualización: noviembre 2007

Puede personalizar elementos en el control DataList dinámicamente, lo que resulta útil cuando desea establecer características de elementos basándose en la información disponible en tiempo de ejecución. Este tema contiene dos ejemplos que muestran cómo personalizar los elementos de un control DataList.

En el primer ejemplo de código se muestra cómo personalizar un elemento individual cuando en el proceso no se ven involucrados datos. Se ofrecen diferentes tipos de plantillas con diferentes colores de fondo.

En el segundo ejemplo de código se explica cómo personalizar el contenido de un elemento de control DataList a partir de los datos que muestra. El código examina el contenido de una etiqueta enlazada a datos en el elemento para extraer una fecha (fecha de nacimiento). Si el mes de la fecha de nacimiento coincide con el mes actual, se resaltará el elemento mediante un color.

Ejemplo

' 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

Compilar el código

Estos ejemplos necesitan:

Programación eficaz

El modo más eficaz de extraer el valor de un control en una plantilla de control DataList es el siguiente:

  1. Asigne un identificador al control en tiempo de diseño.

  2. Utilice el método FindControl del contenedor de nomenclatura (en este ejemplo, un objeto DataListItem).

El método FindControl devuelve un objeto de tipo Control. Debe convertir este objeto al tipo de control adecuado. Si no se encuentra ningún objeto e intenta extraer su valor, el control iniciará una excepción de tipo NullReferenceException.

Vea también

Tareas

Cómo: Personalizar elementos DataList en tiempo de ejecución

Conceptos

Identificación de controles de formularios Web Forms