Переменная сеанса не вступает в силу в asp.net - PullRequest
0 голосов
/ 29 сентября 2011

У меня есть переменная сеанса в моем приложении asp.net. Переменная сеанса содержит значение из базы данных, которое отражает настроенное значение цвета HTML.
В моем приложении у меня есть кнопка asp с кодом на стороне сервера

btnContinue.BackColor = System.Drawing.Color.FromName(Session("ContinueColor"))

Проблема: Однако при запуске приложения значение цвета не отображается в кнопке.

Я дважды проверил, и переменная сеанса содержит правильное значение.
Есть другие объекты, которые используют переменные сеанса для отображения цветов, и они работают нормально.

Как мне решить эту проблему?

Обновление : когда я навязываю цвет "btnContinue.BackColor = Drawing.Color.Blue", он прекрасно работает.

Ответы [ 2 ]

2 голосов
/ 29 сентября 2011

Если это шестнадцатеричный код, вы можете вместо этого использовать ColorTranslator:

btnContinue.BackColor = System.Drawing.ColorTranslator.FromHtml(Session("ContinueColor").ToString());

Глядя на информацию о цвете, которую вы разместили в своем комментарии, я думаю, вам просто нужно привести объект сеанса к типу Color:

btnContinue.BackColor = DirectCast(Session("ContinueColor"), System.Drawing.Color)

РЕДАКТИРОВАТЬ

Я нашел решение:

btnContinue.BackColor = System.Drawing.Color.FromName("{Name=48E8DD, ARGB=(0, 0, 0, 0)}")

В вашем случае это будет:

btnContinue.BackColor = System.Drawing.Color.FromName(Session("ContinueColor").ToString())
0 голосов
/ 29 сентября 2011

Какую часть жизненного цикла страницы вы устанавливаете цвет? Может быть, данные сеанса еще не прочитаны? Сессия должна быть готова после PageLoad.

Я рекомендую устанавливать точку останова сразу после этой строки кода, чтобы убедиться, что больше ничего не переопределяет - тема.

btnContinue.BackColor = System.Drawing.Color.FromName(Session("ContinueColor"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...