【问题标题】:use VALUE AS cell color使用 VALUE AS 单元格颜色
【发布时间】:2013-01-13 17:52:56
【问题描述】:

好的,我在发帖之前已经尽可能多地研究了这个,所以我希望这不是一个转发,但是这里是......

我做了一个数据表,假设它有一个名为“cartype”的列,然后我添加了一个名为“color”的列

好吧,我绑定了一个gridview,我想要做的是使用一个标签,并将它的 FORECOLOR 设置为“颜色”列中的值。

我试过这个:

<asp:BoundField DataField="cartype" HeaderText="Cars"  ItemStyle-Width="130" ItemStyle-ForeColor='<% Eval("Color") %>' />

但我收到一个关于

的错误

“无法从'ForeColor'属性的字符串表示''创建System.drawing.color类型的对象。

我也尝试添加一个模板字段并得到相同的结果。

我试图不使用 rowdatabound 事件并使用 .Cells[3] ,因为当我添加列时,它会更改单元格编号,并切换所有内容!我希望我可以通过将颜色与数据绑定来使其更清晰。

【问题讨论】:

  • 您在模板字段中使用的标记是什么?
  • 错误原因是运行时期望 ForeColor 的值是颜色,而不是字符串。运行时无法从字符串“Red”创建“Red”。无论如何,您为什么要尝试使用代码块来执行此操作?使用 ondatabinding 并根据代码隐藏的条件设置颜色。

标签: c# asp.net vb.net gridview colors


【解决方案1】:

好的,我最终这样做了。伤心:(

在网格的最后,我添加了一个 ASP:Hidden 模板字段

<asp:TemplateField>
  <ItemTemplate>
   <asp:HiddenField ID="hColor" runat="server" Value='<%# Eval("Color") %>'/>
  </ItemTemplate>
</asp:TemplateField>

然后在 RowDataBoundEvent 我做了这个

Dim hid As HiddenField
hid = e.Row.FindControl("hColor")
If (hid.Value <> Nothing) Then
   e.Row.Cells(1).ForeColor = System.Drawing.ColorTranslator.FromHtml("#" + hid.Value)
End If

PS。我喜欢 C#。不喜欢 VB.NET。大声笑:)

【讨论】:

    【解决方案2】:

    你试过了吗:

     ForeColor='<%# System.Drawing.Color.FromName(Eval("Color")) %>'
    

    ?

    【讨论】:

    • 好建议,但这会抛出“只有具有 DataBinding 事件的对象才支持 Databdinging 表达式。System.Web.UI.WebControls.Boundfield 没有 Databinding 事件”
    • 如果你遇到了我的这个错误,那么我想知道为什么你没有得到@wcraft 的答案?
    【解决方案3】:

    错误的原因是运行时期望 ForeColor 的值是颜色,而不是字符串。运行时无法从字符串“Red”创建“Red”。

    您可以使用以下示例在代码后面创建一个函数来解决您的问题.. 函数将接受字符串颜色值并返回系统颜色。同样在填充gridview之前,您可以将颜色列存储在arraylist中并使用该arraylist返回系统颜色。不是最好的方法,但想不出别的。

     ForeColor='<%# Convert.ToString(Eval("Color")) == "Blue" ? System.Drawing.Blue>
    

    【讨论】:

    • 该死的,在那个时候,在最后创建一个新列,隐藏字段的项目模板可能会更容易。然后做一个 e.row.cells[0].Forecolor = "#" + e.row.cells[10].text
    猜你喜欢
    • 1970-01-01
    • 2021-01-12
    • 2014-07-11
    • 1970-01-01
    • 2013-11-14
    • 2012-10-03
    • 1970-01-01
    • 2016-12-14
    • 2015-08-09
    相关资源
    最近更新 更多