【发布时间】:2021-04-25 11:49:57
【问题描述】:
我想用颜色而不是字符串填充 Datatable 行。颜色是字符串值的表示。正如您在下面的代码中看到的那样,我已经尝试过颜色和画笔。我怎样才能做到这一点?
例如,在前端,如果 cib = "EXIST/ACTIVE",我希望用户看到颜色为 GREEN
如果 cib = "EXIST/ACTIVE" 显示黄色。
这些值来自数据库
hdfAccountNumber.Value = GenericManager.decryptQueryString(Request.QueryString("AccountNumber"))
Dim CustomerChannels = GetCustomerDetails(hdfAccountNumber.Value)
Dim ussd As String = CustomerChannels.USSD + "/" + CustomerChannels.USSDStatus
Dim cib As String = CustomerChannels.CIB + "/" + CustomerChannels.BBGStatus
Dim rib As String = CustomerChannels.RIB + "/" + CustomerChannels.RIBStatus
Dim mobile As String = CustomerChannels.MOBILEBANKING + "/" + CustomerChannels.NEWMOBILEStatus
Dim debitCard As String = CustomerChannels.CardStatus
Dim ussdColor As Color
Dim cibColor As Color
Dim ribColor As Color
Dim mobileColor As Color
Dim debitCardColor As Color
Dim ChannelTable As New DataTable
ChannelTable.Columns.Add("USSD")
ChannelTable.Columns.Add("CIB")
ChannelTable.Columns.Add("RIB")
ChannelTable.Columns.Add("MOBILE")
ChannelTable.Columns.Add("DEBIT CARD")
For Each row As DataGridViewRow In DataGrid1.Rows
cib = row.Cells(1).Value
If cib = "EXIST/ACTIVE" Then
cibColor = Color.Green
row.DefaultCellStyle.ForeColor = cibColor
ElseIf cib = "EXIST/INACTIVE" Then
cibColor = Color.Yellow
row.DefaultCellStyle.ForeColor = cibColor
Else
cibColor = Color.Red
row.DefaultCellStyle.ForeColor = cibColor
End If
ussd = row.Cells(0).Value
If ussd = "EXIST/ACTIVE" Then
ussdColor = Color.Green
row.DefaultCellStyle.ForeColor = ussdColor
ElseIf ussd = "EXIST/INACTIVE" Then
ussdColor = Color.Yellow
row.DefaultCellStyle.ForeColor = ussdColor
Else
ussdColor = Color.Red
row.DefaultCellStyle.ForeColor = ussdColor
End If
Next
ChannelTable.Rows.Add(ussdColor, cibColor, rib, mobile, debitCard)
DataGrid1.DataSource = ChannelTable
DataGrid1.DataBind()
End Sub
数据网格
<asp:UpdatePanel ID="UpdatePanel4" runat="server" class="" style="color:#ffffff; margin-top: 5px; font-size: 12px">
<ContentTemplate>
<p style="font-weight: 700; font-weight: 700; margin-left: 10px; font-weight: normal; font-size: 14px;">Channels<span> <asp:Button ID="availableChannel" runat="server" Text="Get channels" CssClass="tdcolor" /> </span></p>
<asp:DataGrid ID="DataGrid1" runat="server" style="width: 100%; margin-top: -8px; font-weight: 600; border: 1px solid #5c2684;">
</asp:DataGrid>
</ContentTemplate>
</asp:UpdatePanel>
【问题讨论】:
-
如果 cib = "EXIST/ACTIVE" 等,我想向用户显示“绿色”
-
您要更改行颜色或单元格颜色吗?
-
我要更改单元格颜色
-
DataTable 没有 .Color 属性或 .Cell 属性。它是表的内存表示。您可以在 DataTable 中有一列包含您要显示的颜色。
-
.ForeColor 在单元格中显示的文本颜色。 .BackColor 就是你要找的。span>
标签: c# vb.net datatable colors