Asp.net 当数据绑定到GridView时,如何基于值更改行的背景色?
当数据绑定到ASP.NET GridView时,如何根据绑定GridView的数据表中的一列布尔值更改背景颜色 例如,如果您绑定到一个包含两列的表:Name,LikesBurritos。如果人们喜欢墨西哥玉米煎饼,你想让他们的名字标签是蓝色的,如果他们不喜欢,你想让他们的名字标签是白色的Asp.net 当数据绑定到GridView时,如何基于值更改行的背景色?,asp.net,Asp.net,当数据绑定到ASP.NET GridView时,如何根据绑定GridView的数据表中的一列布尔值更改背景颜色 例如,如果您绑定到一个包含两列的表:Name,LikesBurritos。如果人们喜欢墨西哥玉米煎饼,你想让他们的名字标签是蓝色的,如果他们不喜欢,你想让他们的名字标签是白色的 遍历数据表或对象列表会破坏数据绑定的目的。。。有很多地方我们使用数据绑定来表达这样一个观点,即在遍历集合时不编码每一列的加法。我很好奇,如果您可以通过在标记中使用表达式来进行去极化…使用内置在GridView中
遍历数据表或对象列表会破坏数据绑定的目的。。。有很多地方我们使用数据绑定来表达这样一个观点,即在遍历集合时不编码每一列的加法。我很好奇,如果您可以通过在标记中使用表达式来进行去极化…使用内置在GridView中的RowDataBound事件,那么您可以这样做(在VB.NET中): 我不太确定您不想遍历所有数据的含义,但是白色或蓝色行的呈现是在数据写入页面的同时发生的,因此您不会损失任何性能
编辑:我想一个可能的替代方法是在结果集中创建第三列,其中包含一个CssClass名称,您可以根据LikesBurritos列声明该名称,并且可以将CssClass绑定到GridView中的名称,但这将要求您有权访问SQL语句或拦截数据绑定过程以修改即将关闭的结果集。使用GridView中内置的RowDataBound事件,然后您可以执行类似的操作(在VB.NET中): 我不太确定您不想遍历所有数据的含义,但是白色或蓝色行的呈现是在数据写入页面的同时发生的,因此您不会损失任何性能 编辑:我想一个可能的替代方法是在结果集中创建第三列,其中包含一个CssClass名称,您可以根据LikesBurritos列声明该名称,并且可以将CssClass绑定到GridView中的名称,但这需要您访问SQL语句,或者截取数据绑定过程来修改即将出现的结果集
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