我的asp.net应用程序中有一个会话变量。会话变量保存数据库中的值,该值反映了自定义的HTML颜色值 在我的应用程序中,我有一个带服务器端代码的asp按钮
btnContinue.BackColor = System.Drawing.Color.FromName(Session("ContinueColor"))
问题:但是,当我运行应用程序时,颜色值没有反映在按钮中。
我做了双重检查,会话变量确实保存了正确的值 还有其他对象,使用会话变量来显示颜色,它们工作正常。
如何解决此问题?
更新:当我强制使用颜色“btnContinue.BackColor = Drawing.Color.Blue”时,效果非常好。
答案 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"))