Gewusst wie: Dynamisches Anpassen von Elementen im DataList-Webserversteuerelement
Aktualisiert: November 2007
Sie können Elemente im DataList-Steuerelement dynamisch anpassen. Das bietet die Möglichkeit, Merkmale von Elementen anhand von Informationen festzulegen, die erst zur Laufzeit verfügbar sind. Dieses Thema enthält zwei Beispiele, die veranschaulichen, wie die Elemente in einem DataList-Steuerelement angepasst werden.
Im ersten Codebeispiel wird erläutert, wie ein einzelnes Element angepasst wird, wenn für die Anpassung keine Daten erforderlich sind. Das Beispiel enthält verschiedene Vorlagentypen mit unterschiedlichen Hintergrundfarben.
Im zweiten Codebeispiel wird erläutert, wie der Inhalt eines Elements in einem DataList-Steuerelement anhand der im Element angezeigten Daten angepasst wird. Der Code untersucht den Inhalt einer datengebundenen Bezeichnung in dem Element, um ein Datum zu extrahieren (Geburtsdatum). Wenn der Geburtsmonat derselbe ist wie der aktuelle Monat, wird das Element farblich hervorgehoben.
Beispiel
' 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
Kompilieren des Codes
Für diese Beispiele gelten folgende Voraussetzungen:
Ein DataList-Steuerelement mit dem Namen DataList1, das an die Tabelle Employees der Datenbank Northwind gebunden ist. Weitere Informationen über das Binden eines DataList-Steuerelements an eine Datenquelle finden Sie unter Gewusst wie: Hinzufügen von DataList-Webserversteuerelementen zu einer ASP.NET-Webseite.
Eine Elementvorlage, die mindestens ein Label-Steuerelement mit dem Namen Label1 enthält. Diese Bezeichnung sollte an das Feld BirthDate in der Tabelle Employees gebunden werden. Weitere Informationen über das Binden von Steuerelementen an Felder finden Sie unter Übersicht über Datenbindungsausdrücke.
Robuste Programmierung
Die zuverlässigste Art, den Wert eines Steuerelements in einer DataList-Steuerelementvorlage zu extrahieren, ist folgende:
Weisen Sie dem Steuerelement zur Entwurfszeit eine ID zu.
Verwenden Sie die FindControl-Methode des Bennenungscontainers (in diesem Beispiel ein DataListItem-Objekt).
Die FindControl-Methode gibt ein Objekt vom Typ Control zurück. Sie müssen dieses Objekt in den entsprechenden Steuerelementtyp umwandeln. Wenn kein Objekt gefunden wird und Sie versuchen, seinen Wert zu extrahieren, löst das Steuerelement eine Ausnahme vom Typ NullReferenceException aus.
Siehe auch
Aufgaben
Gewusst wie: Anpassen von DataList-Elementen zur Laufzeit