[ASP.NET] Gridview 隔 N 行顯示不同底色

摘要:[ASP.NET] Gridview 隔 N 行顯示不同底色

 

受不了 ASP.NET 預設只有提供隔行 (Alternative Row)不同顏色的效果了嗎?如果筆數少,其實這個簡便的方法(Auto Format...)也是很好用的,只是當筆數一多,間隔行數量一大顏色就顯得花花的。

也許你會想可不可以隔5行、隔10行,才顯示一個不同顏色的行呢?

當然可以囉!今天就是要來說這個隔N行該怎麼做呢?先看看效果

當然你可以不要用這麼突兀的顏色,我只是為了凸顯才會選這個顏色來表示隔行。那該怎麼做呢?

要解決這個問題,要先知道2個關鍵點

  1. 要在 Gridview 那個事件(Event)來做處理?
  2. 怎麼知道現在在第幾行?
其實程式只有下面小小的一段

Private Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) HandlesGridView1.RowDataBound
   Dim n_space As Integer = 5 '顯示不同底色的間隔行數
   If e.Row.RowType = DataControlRowType.DataRow Then
       If (e.Row.RowIndex + 1) Mod n_space = 0 Then  '+1 是因為 Index 為從0 開始
           e.Row.BackColor = Drawing.Color.Coral  '顏色當然任選囉
       End If
   End If
End Sub

 

QQ:要在 Gridview 那個事件(Event)來做處理?
ANS:GridView1_RowDataBound

QQ:怎麼知道現在在第幾行?
ANS:e.Row.RowIndex

這樣就可以隨意的要隔幾行就隔幾行的改變底色囉

~ End