2005.03.14

Repeaterで出力結果の色を交互に出す方法

datagridで作成した場合は、CssClassを設定出来るのですが、
Repeaterで作成した場合は、CssClassを設定する事が出来ません。

その為、「出力結果の項目の色を交互に変えたい」という要望の際、
どのようにすれば実現できるのでしょうか?

実現の為に以下の手順で行えば解決できます。
1:スタイルシート切替用フラグの設定を行います。
例えば、Dim bCssChangeFlg As Boolean = True
2:<tr>もしくは<td>にidとrunat="server"の設定をします。
3:ItemDataBound内でbCssChangeFlg がTrueかFalseかをチェックします。
4:チェックした結果に応じてclassの内容を変えます。

ソース例
'リピーター項目
Private Class GrdItems
Public Const tr1 As String = "tr1"
End Class

'// スタイルシート切替用フラグ
Dim bCssChangeFlg As Boolean = True

'// テーブルスタイルの設定
Dim lsCss As String
If Me.bCssChangeFlg Then
Me.bCssChangeFlg = False
lsCss = "Td1"
Else
Me.bCssChangeFlg = True
lsCss = "Td2"
End If

CType(e.Item.FindControl(Me.GrdItems.tr1), HtmlTableRow).Attributes("class") = lsCss

おまけ
他にも行数を設定しておいて
今、何行目なのか判断する事によってclassを変える方法もあります。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
ntakayama