Практическое руководство. Динамическая настройка элементов серверного веб-элемента управления DataList

Visual Studio 2010

Обновлен: Ноябрь 2007

Динамическая настройка элементов в DataList позволяет установить их характеристики на основе сведений, доступных в момент выполнения. В данном разделе содержится два примера, которые показывают, как настраивать элементы в DataList.

В первом примере кода показано, как настроить отдельный элемент не затрагивая данные. В примере отображаются различные типы шаблонов с различными фоновыми цветами.

Во втором примере показано, как настроить содержимое элемента управления DataList на основе отображенных в нем данных. При извлечении даты (даты рождения) код оценивает содержимое метки с привязкой к данным в элементе. Если месяц даты рождения совпадает с текущим, элемент подсвечивается заданным цветом.

' 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

Для выполнения данных примеров требуются следующие компоненты:

Способ извлечения значения элемента управления из шаблона элемента DataList:

  1. На этапе разработки присвойте элементу управления идентификатор.

  2. Используйте метод FindControl именованного контейнера (в данном примере объект DataListItem).

Метод FindControl возвращает объект типа Control. Данный объект необходимо привести к типу, соответствующему типу элемента управления. Если объект не найден и выполняется попытка извлечь значение объекта, элемент управления создаст исключение типа NullReferenceException.

Показ: