[ASP.NET]控制Repeater每筆的顏色

控制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行去更改,甚至每筆都不同也可以喔!!給各位參考 :)

 

結果範例 :

分享


站作網站設計工作室 SiteMak Studio
Shinyo Ho 
Founder / Developer
email:shinyo.her@gmail.com|web:www.sitemak.com.tw