[英]How to change Gridview's row color based on a specific cell value? Asp.net
[英]Set ASP DataGrid row color based on cell value
我有一个ASP:DataGrid
。对此我在显示记录的记录是从SQL Server 2008 R2的数据库中抽取到的SqlAdapter
这是用来填充DataSet
,并且结合到ASP:DataGrid
ASP:DataGrid
可以跨越多个页面,并且每页限制为20条记录。
列之一是一个值,表示剩余多少天要处理该条目。 我想突出显示红色值为0-1且oracle为2-5的值。 我尝试过的方法是将函数调用设置为ASP:DataGrid
的OnItemDataBound
字段
Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
If (e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem) Then
Select Case CType(e.Item.Cells(5).Text, Integer)
Case 0 To 1
e.Item.BackColor = Drawing.Color.Red
Case 2 To 5
e.Item.BackColor = Drawing.Color.Orange
End Select
End If
End Sub
首次加载页面时,此方法非常有效。 如果记录多于一页,而您尝试移至下一页,则根本不会加载任何记录,实际上ASP:DataGrid
根本不会显示。 如果我删除OnItemDataBound
则ASP:DataGrid
可以再次正常运行(尽管没有突出显示)。
因此事实证明,可能的代码实际上是正确的。 我在Catch
部分中的代码部分放置了一个Try
代码块,以将详细信息记录在数据库的表中。
立刻显示出来自Select Case
的以下内容
Conversion from string " " to type 'Integer' is not valid.
我需要做的一个简单更改就是确保仅当存在有效值时才对单元格进行着色。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.