使用 Eval 设置标签时回发丢失的标签背景色

backcolor of a label lost on postback when using Eval to set it

我的网站上有一个数据列表,每个数据项都有一个带背景色的标签。数据源已设置,我有一个带有背景色的标签,该标签是根据数据源中的颜色代码设置的:

<asp:DataList runat="server" ID="RptColor" DataSourceID="DSColor" RepeatDirection="Horizontal" RepeatLayout="Table">
    <ItemTemplate>
        <div class="col-md-1">
            <asp:Label runat="server" ID="RpLblColorCode" BackColor='<%# System.Drawing.Color.FromName(Eval("ColorCode").ToString()) %>' Width="20px" Height="20px"></asp:Label>
        </div>
    </ItemTemplate>
</asp:DataList>

问题是当我按下按钮并发生回发时,背景颜色会消失! ...我在页面上有一个更新面板。 请帮助我

使用 ColorTranslator.FromHtml 而不是 Color.FromName。您可以将代码更改为:

<asp:DataList runat="server" ID="RptColor" DataSourceID="DSColor" RepeatDirection="Horizontal" RepeatLayout="Table">
  <ItemTemplate>
     <asp:Label runat="server"
      ID="RpLblColorCode" BackColor='<%# System.Drawing.ColorTranslator.FromHtml(Eval("ColorCode").ToString()) %>'></asp:Label>
  </ItemTemplate>
</asp:DataList>