Asp.net
如何使用 Eval 更改 TemplateField 中的顏色
我有一個 Gridview 包含許多 TemplateField。
我想讓
<td>我的 html 原始碼中的每一個都等於保存在我的數據庫中的顏色我嘗試程式碼位於下面但不工作它給我一個帶有我的顏色的
<span>標籤但不要出現在瀏覽器上<td><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>C#程式碼工作
public Color ConvertFromHexToColor(string hex) { string colorcode = hex; int argb = Int32.Parse(colorcode.Replace("#", ""), NumberStyles.HexNumber); Color clr = Color.FromArgb(argb); return clr; }這是我瀏覽器中的源 html 和 css 程式碼
<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; }
您需要將文本放在標籤內(呈現為跨度)
<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>您可能還更喜歡使用面板(呈現為 div)而不是標籤。不要忘記將東西放在 div 或 span 中。
如果你想用一個布爾值檢查它是否為真,那麼綠色會起作用,否則紅色會起作用。然後根據 Eval 函式顯示具有相應顏色的文本。這裡 GetStatus 是一個方法,您需要在程式碼中創建它,我們將文本綁定到 UI,否則您可以像往常一樣使用 Eval 或 Bind 函式進行綁定。
ForeColor='<%# (bool)Eval("UserType")==true?System.Drawing.Color.Green:System.Drawing.Color.Red %>' Text='<%# GetStatus((bool)Eval("UserType")) %>'>