根据db值在转发器中动态更改标签forecolor

Joa*_*loo 2 c# sql-server asp.net

我有一个从数据库返回的字符串值.值始终为"红色"或"绿色".我试图根据此字符串值更改我的转发器中的标签的前景色.如果值为"红色",则标签的前景色应为红色,反之亦然.

我尝试在我的asp页面中使用此代码:

 ForeColor='<%# Eval("Color")%>'
Run Code Online (Sandbox Code Playgroud)

但是我得到了流动的错误:

Specified cast is not valid.
Run Code Online (Sandbox Code Playgroud)

之前我遇到过类似的问题,试图动态设置图像的宽度并最终像这样抛出值:

<asp:Image 
  ID="Image1" 
  runat="server" 
  Width='<%# System.Web.UI.WebControls.Unit.Parse(Eval("ImageSize").ToString()) %>'
  ImageUrl="~/Images/ProgressBar.jpg"/>
Run Code Online (Sandbox Code Playgroud)

问题是我如何使用相同的技术与系统颜色?

谢谢J

Tim*_*ter 7

ForeColor需要一个Color对象而不是字符串.

所以你可以使用ColorTranslator.FromHtml:

 ForeColor='<%# Drawing.ColorTranslator.FromHtml(Eval("Color").ToString())%>'
Run Code Online (Sandbox Code Playgroud)