2012-10-05 95 views
1

我是数据绑定的GridView,其中一列定义如下。我想要做的是根据文字是“是”还是“否”来给文字着色。如果文字是“是”,我想将其设置为红色,否则将其设置为绿色。这可以做到,如果是这样应该通过CSS来完成,或者我可以添加一些代码到线?设置基于文本的asp:标签文本颜色

<asp:TemplateField HeaderText="Validated" ItemStyle-HorizontalAlign="Center" SortExpression="Product"> 
    <ItemTemplate> 
     <asp:Label ID="lblValidated" runat="server" Text='<%# Bind("Validation") %>' /> 
    </ItemTemplate> 
</asp:TemplateField> 

回答

3

下面应该做你想做的。

ASP.NET

<asp:TemplateField HeaderText="Validated" ItemStyle-HorizontalAlign="Center" SortExpression="Product"> 
<ItemTemplate> 
    <asp:Label ID="lblValidated" runat="server" Text='<%# Bind("Validation") %>' CssClass='<%# SetColor(DataBinder.Eval(Container.DataItem, "Validation")) %>' /> 
</ItemTemplate> 

C#

public string SetColor(string Text) 
{ 
    return Text.ToUpper == "YES" ? "GreenClass" : "RedClass" 
} 

CSS

.GreenClass{color:green;} 
.RedClass{color:red;} 
+1

不应该是<%#SetColor而不是<%= SetColor? – jbl

+0

给出错误“The name'Bind'在当前上下文中不存在”:( – Retrocoder

+0

@jbl对呀 –