次の方法で共有


方法 : DataList Web サーバー コントロールの項目を動的にカスタマイズする

更新 : 2007 年 11 月

DataList コントロールの項目は動的にカスタマイズできるので、実行時に使用できる情報に基づいて項目の特性を設定する場合に便利です。このトピックには、DataList コントロールの項目をカスタマイズする方法を示す 2 つの例があります。

最初のコード例では、データのカスタマイズを伴わないときの各項目をカスタマイズする方法を示します。この例では、各種テンプレートを異なる背景色で表示します。

2 番目のコード例では、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. デザイン時にコントロールに対して ID を割り当てます。

  2. 名前付けコンテナの FindControl メソッドを使用します (この例では DataListItem オブジェクト)。

FindControl メソッドは、Control 型のオブジェクトを返します。このオブジェクトを適切なコントロールの型にキャストする必要があります。存在しないオブジェクトの値を抽出しようとした場合、コントロールは NullReferenceException 型の例外をスローします。

参照

処理手順

方法 : DataList 項目を実行時にカスタマイズする

概念

Web フォーム コントロールの識別