HOW TO:在 DataList Web 伺服器控制項中動態自訂項目

更新:2007 年 11 月

您可以動態方式自訂 DataList 控制項中的項目,如果您想要根據能夠在執行階段使用的資訊設定項目特性,這個方法就很有用。這個主題包含兩個範例,說明如何自訂 DataList 控制項中的項目。

第一個程式碼範例示範當自訂設定不包含資料時如何自訂個別項目。這個範例顯示具有不同背景色彩的不同樣板類型。

第二個程式碼範例示範如何根據 DataList 控制項項目中顯示的資料來自訂它的內容。程式碼會檢查項目中的資料繫結標籤 (Label) 內容來擷取日期 (生日)。如果生日的月份與目前月份相同,則會使用顏色反白顯示該項目。

範例

' 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. 在設計階段將 ID 指派給控制項。

  2. 使用命名容器 (在這個範例中是 DataListItem 物件) 的 FindControl 方法。

FindControl 方法會傳回 Control 型別的物件。您必須將這個物件轉換成適當的控制項型別。如果找不到物件並且嘗試擷取它的值,則控制項會擲回 NullReferenceException 型別的例外狀況。

請參閱

工作

HOW TO:在執行階段中自訂 DataList 項目

概念

Web Form 控制項識別