繁体   English   中英

根据单元格值设置ASP DataGrid行颜色

[英]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:DataGridOnItemDataBound字段

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根本不会显示。 如果我删除OnItemDataBoundASP:DataGrid可以再次正常运行(尽管没有突出显示)。

因此事实证明,可能的代码实际上是正确的。 我在Catch部分中的代码部分放置了一个Try代码块,以将详细信息记录在数据库的表中。

立刻显示出来自Select Case的以下内容

Conversion from string " " to type 'Integer' is not valid.

我需要做的一个简单更改就是确保仅当存在有效值时才对单元格进行着色。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM