如何根据行值有条件地更改背景颜色

时间:2011-04-14 20:54:10

标签: asp.net vb.net colors

我正在开发一个报告,它使用VB通过ASPX页面输出SQL表中的数据。如何对其进行编码以使其中一列包含“1”的所有行显示为红色?这是我到目前为止所拥有的。这不会导致任何错误,但也不会显示为红色。

我不知道这是否有问题,但ExceedsLimit和SixInARow变量在我的存储过程中是INT,但后来我在下面的代码中将它们声明为字符串。

    Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs)
        If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then
            Dim ExceedsLimit As String
            Dim SixInARow As String
            Dim i As Int16

            SixInARow = e.Item.Cells(6).Text
            ExceedsLimit = e.Item.Cells(7).Text

            If ExceedsLimit = "1" Or SixInARow = "1" Then
                For i = 0 To 6
                    e.Item.Cells(i).BackColor = System.Drawing.Color.Red
                Next
            End If

        End If
    End Sub

HTML部分:

            <ASP:DATAGRID id="dgTable" runat="server" AUTOGENERATECOLUMNS="true" ShowHeader="true" OnItemDataBound="DataGrid1_ItemDataBound" >
                <AlternatingItemStyle BackColor = "#eeeeee" />
                <HEADERSTYLE BackColor = "#336699" ForeColor = "#ffffff" Font-Bold = "true" />
            </ASP:DATAGRID> 

1 个答案:

答案 0 :(得分:1)

您需要将背景颜色设置为Item.Style

试试这个:

If ExceedsLimit = "1" Or SixInARow = "1" Then                 
  e.Item.BackColor = System.Drawing.Color.Red                 
End If