0

我有一个在ASP:DataGrid其中显示记录的记录。记录从 SQL Server 2008 R2 数据库中提取到SqlAdapter用于填充 aDataSet并且绑定到ASP:DataGrid

可以跨越多个页面,ASP:DataGrid并且每页限制为 20 条记录。

其中一列是要处理条目的剩余天数的值。我想突出显示任何值为 0 - 1 的红色和任何值为 2 - 5 的预言。我尝试过的方法是将函数调用设置OnItemDataBoundASP:DataGrid

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(尽管没有突出显示)。

4

1 回答 1

0

所以事实证明,may 代码实际上是正确的。我Try在代码周围放置了一个块,其中有一个部分Catch用于将详细信息记录在我的数据库中的表中。

它立即显示以下来自Select Case

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

我只需要一个简单的更改来确保单元格仅在存在有效值时才着色。

于 2013-04-15T18:57:12.593 回答