ASP.NET - binding backcolor

ASP.NET - binding backcolor
2010-03-09T18:05:09+01:00
2010-03-09T19:22:36+01:00
2022-11-17T00:41:56+01:00
stl
Sziasztok!

Egy GridView egyik readonly oszlopában színeket szeretnék megjeleníteni. Adatbázisban 6 karakteren tárolom a HTML színkódot. Gondolotam hozzákötöm egy Panel BackColor property-jéhez:
<asp:TemplateField SortExpression="Color"> <ItemTemplate> <asp:Panel ID="ColorPanel" runat="server" Width="30" BackColor='<%# Eval("Color", "#{0}") %>' /> </ItemTemplate> </asp:TemplateField>

Hibaüzenet (build-nál):
Cannot convert type 'string' to 'System.Drawing.Color'


Van valakinek ötlete, hogy hogyan is kellene, ha nem így?
Mutasd a teljes hozzászólást!
Csinálj egy Color típusú property-t és azt binde-old rá!
Itt van egy példa is, ahol egy listában color típusú objektumokat tárolnak, és megjelenítenek egy repeaterrel:

Digging Into Data Binding Expressions
Mutasd a teljes hozzászólást!

  • Vaqy így:

    public class Alma { public string Color { get; set; } } protected void Page_Load(object sender, EventArgs e) { List<Alma> almak = new List<Alma>(); almak.Add(new Alma() { Color = "CCCCCC" }); almak.Add(new Alma() { Color = "AAAAAA" }); almak.Add(new Alma() { Color = "222222" }); GridView1.DataSource = almak; GridView1.DataBind(); } <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns=false> <Columns> <asp:TemplateField SortExpression="Color"> <ItemTemplate> <asp:Panel ID="ColorPanel" runat="server" BackColor='<%# System.Drawing.ColorTranslator.FromHtml("#" + Eval("Color").ToString()) %>'> <asp:Label runat="server" Text='<%# Eval("Color", "#{0}") %>' /> </asp:Panel> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
    Mutasd a teljes hozzászólást!
  • köszi! megvan.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd