会话变量在asp.net中不生效

时间:2011-09-29 18:23:56

标签: asp.net vb.net session-variables background-color

我的asp.net应用程序中有一个会话变量。会话变量保存数据库中的值,该值反映了自定义的HTML颜色值 在我的应用程序中,我有一个带服务器端代码的asp按钮

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

问题:但是,当我运行应用程序时,颜色值没有反映在按钮中。

我做了双重检查,会话变量确实保存了正确的值 还有其他对象,使用会话变量来显示颜色,它们工作正常。

如何解决此问题?

更新:当我强制使用颜色“btnContinue.BackColor = Drawing.Color.Blue”时,效果非常好。

2 个答案:

答案 0 :(得分:2)

如果是十六进制代码,您可能需要使用ColorTranslator:

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

查看您在评论中发布的颜色信息,我认为您只需要将会话对象转换为类型颜色:

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())

答案 1 :(得分:0)

您设置颜色的页面生命周期的哪个部分?也许会议数据尚未被读取?会话应该在PageLoad之后准备就绪。

我建议在此行代码后立即设置一个断点,以确保没有其他任何内容覆盖它 - 主题。

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