Как динамически установить BackColor ячейки таблицы со значением базы данных? - PullRequest
0 голосов
/ 23 июля 2010

В качестве бонуса к проекту, над которым я сейчас работаю, людям было бы интересно, если бы я мог изменить цвет фона отдельных ячеек таблицы в зависимости от их значения.Поэтому в обработчике событий 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.Поэтому в приведенном выше фрагменте кода мой код вызывает исключение времени выполнения на tc.BackColor = ds2.Tables(0).Rows(i)("Ref1").Я также обнаружил, что не могу использовать CType для преобразования строкового значения в эквивалентный объект System.Drawing.Color.

Я думал о решении, которое я COULD использовать.Я мог бы создать пользовательский объект, который имеет свойство Name и свойство System.Drawing.Color.Я мог бы создать несколько объектов в соответствии со всеми значениями цвета, доступными в базе данных, а затем сравнить текст ячейки со свойствами имени объекта, однако боюсь, что это будет довольно ресурсоемким (а производительность этого приложения уже падает, потому что этодолжен работать под IE7).

Так кто-нибудь знает, как я мог бы осуществить то, что мне нужно здесь, относительно простым, не ресурсоемким способом?

1 Ответ

0 голосов
/ 23 июля 2010

Color.FromName (), передавая ему имя в вашей базе данных. Есть и другие методы, такие как FromRGB, но FromName звучит так, как вы хотите.

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

...