【问题标题】:ASP.net label control data bind color changeASP.net标签控件数据绑定颜色变化
【发布时间】:2015-01-13 18:50:40
【问题描述】:

我正在尝试找出一种方法来更改标签控件中文本显示的颜色或用户控件内的跨度。

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

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

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

我不知道该怎么做。任何提示将不胜感激。

【问题讨论】:

    标签: asp.net data-binding label


    【解决方案1】:

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

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

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

    【讨论】:

    • 非常感谢。我可能没有问正确的事情。它看起来很简单,但我被卡住了。标签文本会从数据库返回“正确”或“错误”。并基于该值,我试图以绿色显示“正确”文本....或者如果它“错误”,则只需将标签显示为红色。叹息。
    • 嗯,是的,我对您要做什么感到困惑。究竟从数据库绑定了什么?它是答案字符串还是字面意思是“正确”或“错误”的字符串?你想让你的标签说什么?
    • " : "" %>
    • 这就是我想要做的:(。我自己搞不明白
    【解决方案2】:

    尝试一下 jquery:

    假设您的 HTML 为:&lt;span class='target'&gt;&lt;/span&gt;

    几个简单的 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');
            }
        });
    });
    

    我个人更喜欢使用 data- 属性,但如果跨度中的值是数字,这将起作用。

    回应评论:

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

    不是我喜欢的方法,但应该可以。

    【讨论】:

    • 谢谢.. 我在用户控件中有标签或跨度。你能告诉我如何在这种情况下使用 jquery 来实现这一点吗?
    • 使用 更新了答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    相关资源
    最近更新 更多