当前位置:  开发笔记 > 后端 > 正文

在数据绑定到GridView时,如何根据值更改行的背景颜色?

如何解决《在数据绑定到GridView时,如何根据值更改行的背景颜色?》经验,为你挑选了1个好方法。

当数据绑定到ASP .NET GridView时,如何基于布尔值更改背景颜色,该布尔值是GridView绑定的数据表中的列?

例如,如果您绑定到具有两列的表:Name,LikesBurritos.如果他们喜欢墨西哥卷饼,你想要让人们的名字标记为蓝色,如果他们不喜欢墨西哥,你想要标记.

迭代数据表或对象列表会破坏数据绑定的目的......我们在很多地方使用数据绑定来表示在迭代整个集合时不编码每列的添加的表达点.我很好奇你是否可以通过在标记中使用expresion来做到这一点...



1> Dillie-O..:

使用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进程以修改结果集.

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有