【问题标题】:How to set forecolor in TemplateField?如何在 TemplateField 中设置前景色?
【发布时间】:2012-04-06 04:23:07
【问题描述】:
下面的代码在评估 Gender 后在 GridView 列中显示“M”或“F”。
<asp:TemplateField HeaderText="Gender">
<ItemTemplate>
<%# Eval("Gender") %>
</ItemTemplate>
</asp:TemplateField>
当它是“M”时,我想使用 textcolor red 和 blue 否则。我该怎么做呢?在 aspx 文件或后面的代码中都可以。如果可能的话,我想知道这两种方法。
【问题讨论】:
标签:
c#
asp.net
templatefield
【解决方案1】:
要通过标记来做到这一点,您必须将项目模板内容包装到例如<div>,并像这样对其应用必要的样式:
<asp:TemplateField HeaderText="Gender">
<ItemTemplate>
<div style='color: <%# Eval("Gender") == "M" ? "Red" : "Blue" %>'>
<%# Eval("Gender") %>
</div>
</ItemTemplate>
</asp:TemplateField>
【解决方案2】:
您可以使用 GridView 上的onRowDataBound 事件来检查“M”或“F”,然后根据值更改字体颜色。
void gridview_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
string theValue = e.Row.Cells[3].Text;
if (theValue ="M")
{
e.Row.Cells[1].Forecolor= Color.Red
}
else if (theValue ="F")
{
e.Row.Cells[1].Forecolor= Color.Blue;
}
}
}