【发布时间】:2010-07-23 15:45:05
【问题描述】:
作为对我目前正在进行的项目的奖励,如果我可以根据其值更改单个表格单元格的背景颜色,人们会喜欢它。因此,在我拥有的 RadGrid_ItemDataBound 事件处理程序中,如果单元格的文本等于数据库中数据集中的某个值,我将尝试设置单元格的 BackColor。我现在的代码是这样的:
For i As Integer = 0 To ds2.Tables(0).Rows.Count - 1 Step 1
If tc.Text = ds2.Tables(0).Rows(i)("LookupValue") Then
tc.BackColor = ds2.Tables(0).Rows(i)("Ref1")
Exit For
End If
Next
问题是在代码隐藏中设置颜色时,我显然必须将其设置为 System.Drawing.Color 的对象——我不能像在 CSS 中那样只为它提供一个字符串值。因此,在我上面发布的代码 sn-p 中,我的代码在 tc.BackColor = ds2.Tables(0).Rows(i)("Ref1") 上引发了运行时异常。我还发现我不能使用 CType 将字符串值更改为 System.Drawing.Color 的等效对象。
我想到了一个我可以使用的解决方案。我可以创建一个具有 Name 属性和 System.Drawing.Color 属性的自定义对象。我可以根据数据库中可用的所有颜色值实例化几个对象,然后将单元格文本与对象的 Name 属性进行比较,但是我担心这样做会占用大量资源(并且该应用程序的性能已经受到影响,因为它必须在 IE7 下运行)。
那么有没有人知道我可以用一种相对简单、非资源密集型的方式来完成我需要做的事情?
【问题讨论】: