2010-07-23 24 views
0

作爲我目前正在研究的項目的一項獎勵,如果我可以根據個人表格單元的價值改變單個表格單元格的背景顏色,人們會喜歡它。所以在我有的RadGrid_ItemDataBound事件處理程序中,我試圖設置單元格的BackColor,如果單元格的文本等於我數據庫中數據集的某個值。我當前的代碼是像這樣:如何使用數據庫值動態設置表格單元格的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中一樣。所以在我上面發佈的代碼片段中,我的代碼在tc.BackColor = ds2.Tables(0).Rows(i)("Ref1")上拋出了運行時異常。我還發現我不能使用CType將字符串值更改爲System.Drawing.Color的等效對象。

我想到了一個解決方案,我可以使用。我可以創建一個具有Name屬性和System.Drawing.Color屬性的自定義對象。我可以根據數據庫中可用的所有顏色值實例化幾個對象,然後將單元格文本與對象的Name屬性進行比較,但是我擔心這樣做會相當耗費資源(並且此應用程序的性能已經受到影響,因爲它必須在IE7下運行)。

那麼是否有人知道我可以用相對簡單的非資源密集型方式來實現我需要的方式?

回答

0

Color.FromName()把它的名字交給你的數據庫。也有其他方法,如FromRGB,但FromName聽起來像你想要的。

http://msdn.microsoft.com/en-us/library/system.drawing.color.fromname.aspx

+0

所以這是真的愚蠢,我不覺得看東西里面的System.Drawing.Color可言。哦......這是星期五。感謝您的幫助。 :-) – KSwift87 2010-07-23 16:12:31

+0

有時你只需要另一雙眼睛。 :) – MCain 2010-07-23 16:13:11

相關問題