2013-02-11 11 views
8

Mam Gridview zawierają wiele TemplateField.
Chcę dołożyć wszelkich <td> w moim źródle HTML równy kolor zapisane w mojej bazy danych
Staram kod znajduje się poniżej, ale nie działa to daj mi <span> tag wewnątrz <td> z moim kolorze, ale Ale nie pojawiają się w przeglądarceJak zmienić kolor w TemplateField przy użyciu Eval

<asp:TemplateField HeaderText="BackGround Color"> 
    <ItemTemplate> 
      <asp:Label ID="lblBackColor" runat="server" 
        BackColor='<%# ConvertFromHexToColor(Eval("BackColor").ToString()) %>'> 
      </asp:Label> 
      <itemstyle width="20%" horizontalalign="Center" /> 
    </ItemTemplate>  
</asp:TemplateField> 

kod C# działa

public Color ConvertFromHexToColor(string hex) 
{ 
    string colorcode = hex; 
    int argb = Int32.Parse(colorcode.Replace("#", ""), NumberStyles.HexNumber); 
    Color clr = Color.FromArgb(argb); 
    return clr; 
} 

i to jest źródło i kod html css w przeglądarce

  <td> 
       <span id="BodyZone__ThemesGrid_lblForeColor_0" style="background-color: #FFFFFF;"></span> 
       <itemstyle width="20%" horizontalalign="Center"> 
        </itemstyle> 
      </td> 

CSS

table.activity_datatable td { 
padding: 8px 15px; 
color: #6c6c6c; 
vertical-align: middle; 
-webkit-transition: all 0.2s; 
} 
+1

Nie ma tekstu w zakresie, więc nie ma koloru w backgroupnd –

+0

co masz na myśli ** co td ** –

Odpowiedz

4

Trzeba umieścić tekst wewnątrz etykiety (co czyni do rozpiętości)

<asp:TemplateField HeaderText="BackGround Color"> 
    <ItemTemplate> 
    <asp:Label ID="lblBackColor" runat="server" BackColor='<%# ConvertFromHexToColor(Eval("BackColor").ToString()) %>'>PUT_TEXT_HERE</asp:Label> 
    <itemstyle width="20%" horizontalalign="Center" /> 
    </ItemTemplate> 
</asp:TemplateField> 

Możesz również wolą za pomocą panelu (który renderuje do div) zamiast etykiety. Nie zapomnij umieścić rzeczy wewnątrz div lub span.

2
ForeColor='<%# Convert.ToString(Eval("ESM")) == "Elective" ? System.Drawing.Color.Green: 
      Convert.ToString(Eval("ESM")) == "Emergency" ? System.Drawing.Color.Red: System.Drawing.Color.Purple%>' 

Spróbuj kod ..........

3

Jeśli chcesz sprawdzić o wartości logicznej, jeśli prawdą jest, potem zielony kolor inny kolor czerwony będzie efekt. Następnie wyświetl tekst o odpowiednim kolorze zgodnie z funkcją Eval. Tutaj GetStatus to metoda, którą musisz utworzyć w kodzie za tym, że wiążemy tekst z interfejsem użytkownika, lub możesz w zwykły sposób powiązać go z funkcją Eval lub Bind.

ForeColor='<%# (bool)Eval("UserType")==true?System.Drawing.Color.Green:System.Drawing.Color.Red %>' 
           Text='<%# GetStatus((bool)Eval("UserType")) %>'> 
Powiązane problemy