使用內置在GridView的RowDataBound事件,那麼你可以做這樣的事情(在VB.NET):
Private Sub FormatGridView(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
Handles gvBurritoPeople.RowDataBound
Dim drBurritoPeople As BurritoPeopleRow
If e.Row.RowType = DataControlRowType.DataRow Then
drBurritoPeople = DirectCast(DirectCast(e.Row.DataItem, System.Data.DataRowView).Row, BurritoPeopleRow)
If drBurritoPeople.LikesBurritos Then
e.Row.CssClass = "BlueRow"
Else
e.Row.CssClass = "WhiteRow"
End If
End IF
End Sub
我不太清楚你的意思是不想迭代所有的數據,但是這個白色或藍色的行渲染髮生在數據寫入頁面的同時,所以你在這裏不會失去任何表現。
編輯:我猜一個可能的替代方案是在您的ResultSet中創建第三列,其中包含可以基於LikesBurritos列聲明的CssClass名稱,並且可以將CssClass綁定到GridView中的CssClass,但這將要求您有權訪問SQL語句或攔截DataBinding進程以修改ResultSet。