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
編譯程式碼
這些範例需要:
名為 DataList1 的 DataList 控制項,該控制項繫結至 Northwind 資料庫的 Employees 資料表。如需將 DataList 控制項繫結至資料來源的詳細資訊,請參閱 HOW TO:將 DataList Web 伺服器控制項加入至 ASP.NET 網頁。
項目樣板,它包含至少一個名為 Label1 的 Label 控制項。應將這個標籤繫結至 Employees 資料表的 BirthDate 欄位。如需將控制項繫結至欄位的詳細資訊,請參閱資料繫結運算式概觀。
穩固程式設計
若要擷取 DataList 控制項樣板中的控制項值,最可靠的方法是:
在設計階段將 ID 指派給控制項。
使用命名容器 (在這個範例中是 DataListItem 物件) 的 FindControl 方法。
FindControl 方法會傳回 Control 型別的物件。您必須將這個物件轉換成適當的控制項型別。如果找不到物件並且嘗試擷取它的值,則控制項會擲回 NullReferenceException 型別的例外狀況。