控制Repeater每筆的顏色
通常只是要顯示一些列表資料的時候,我們只需用Repeater控制項來處理就用,其一是GridView太肥..其二是Repeater比較靈活,其三是Reapeater不會在HTML端產生標籤,GridView或DataList都會產生<table>標籤,這沒有套用好可能會造成破板..甚是麻煩!
雖說用GridView作的話控制每列的顏色比較簡單,今天就來分享一下關於Repeater的顏色控制吧!!
首先還是先說明一下Repeater的生命週期,Repeater_ItemCreated事件是最先被讀取的,再來才是Repeater_ItemDataBound等事件,所以要今天要做的功能,看你需要求放在哪個都可以..
當然在ASPX內還是要先設定好各種用來切換用的CSS..因為沒有內建的!!先看程式再來說明
VB :
Protected Sub Repeater4_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles Repeater4.ItemDataBound
If (e.Item.ItemIndex + 1) Mod 2 = 0 Then
Dim table1 As HtmlControl = CType(e.Item.FindControl("table1"), HtmlControl)
table1.Attributes.Add("bgcolor", "#dae5ef")
table1.Attributes.Add("style", "border-top:1px solid #bccfe1; border-bottom:1px solid #bccfe1;")
End If
End Sub
看到第一行的判斷,表示我們要在第幾筆資料去做變化,例如當前的索引值可以整除2的話,表示每隔一筆就會變色,同理延伸,要控制哪一筆都可以!
第二行的FindControl是因為今天的範例是去改變TABLE的背景色,如果各位要使用的話可以自行變化成其它的控制項或HTML標籤,端看你的顏色是由甚麼去控制的
第三.四行就是直接加入屬性囉!
顏色變化就是這麼簡單,使用起來的活用性也很高,可以在第X行去更改,甚至每筆都不同也可以喔!!給各位參考 :)
結果範例 :
|