ASP.net标签控件数据绑定颜色变化

时间:2015-01-13 18:50:41

标签: asp.net data-binding label

我试图找出一种方法来改变标签控件或跨用户控件内的文本显示的颜色。

根据返回的值,文本需要以不同的颜色显示。

<asp:Label ID="NameLabel" runat="server" Text='<%# Eval("Name").ToString()=="Flying Bats" ? "Display the text in green" : "Display the text in red" %> '/>

文本值将是两者中的一个。根据返回的内容,字体颜色需要是以红色或绿色。

我无法弄明白该怎么做。任何提示都将不胜感激。

2 个答案:

答案 0 :(得分:0)

尝试一点jquery:

将您的HTML视为:<span class='target'></span>

一些简单的CSS类:

.text-red{color:red;}
.text-green{color:green;}

还有一点jQuery:

$(document).ready(function(){
    var tolerance = 5;
    $('.target').each(function(){
        if($(this).text() > tolerance){
            $(this).addClass('text-red');
        }else {
            $(this).addClass('text-green');
        }
    });
});

我个人会更喜欢使用数据属性,但如果跨度中的值是数字,这将有效。

回应评论:

<div> <asp:Label ID="Label1" runat="server" CssClass='<%# Eval("Name").ToString()=="Flying Bats" ? "text-green" : "text-red" %> '/></div>

不是我喜欢的方法,但它应该有用。

答案 1 :(得分:0)

如果您决定在标记中使用服务器标签,我认为您可以使用ForeColor:

<asp:Label ID="NameLabel" runat="server" Text='<%# Eval("Name").ToString() %>' 
ForeColor='<%# (Eval("Name").ToString()=="Flying Bats") ? "Green" : "Red" %>'/>

或者使用十六进制颜色代替颜色名称,但您可能必须使用System.Drawing中的ColorTranslator。不熟悉C#所以我希望我能正确地完成这个条件。