【问题标题】:Set ASP DataGrid row color based on cell value根据单元格值设置 ASP DataGrid 行颜色
【发布时间】:2013-04-07 22:44:35
【问题描述】:

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

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

其中一列是要处理条目的剩余天数的值。我想突出显示任何值为 0 - 1 的红色和任何值为 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 根本不会显示。如果我删除OnItemDataBound,那么ASP:DataGrid 会再次正常运行(尽管没有突出显示)。

【问题讨论】:

    标签: asp.net html vb.net datagrid


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-07-29
      • 2014-03-17
      • 2013-01-03
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多