如何在TemplateField中设置forecolor?

时间:2012-04-06 04:23:08

标签: c# asp.net templatefield

以下代码显示" M"或" F"在评估Gender之后在GridView列中。

        <asp:TemplateField HeaderText="Gender">
            <ItemTemplate>
                <%# Eval("Gender") %>
            </ItemTemplate>
        </asp:TemplateField>

当它&#34; M&#34;我想使用textcolor红色和蓝色。我该怎么做呢?无论是在aspx文件中还是在后面的代码中都可以。如果可能的话,我想知道两种方式。

2 个答案:

答案 0 :(得分:2)

要通过标记执行此操作,您必须将项目模板内容包装到例如<div>,并将必要的样式应用于此:

<asp:TemplateField HeaderText="Gender">
    <ItemTemplate>
        <div style='color: <%# Eval("Gender") == "M" ? "Red" : "Blue" %>'>
            <%# Eval("Gender") %>
        </div>
    </ItemTemplate>
</asp:TemplateField>

答案 1 :(得分:1)

您可以使用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;
}
}
}