【问题标题】:How do I Turn negative numbers red?如何将负数变为红色?
【发布时间】:2010-10-12 23:47:56
【问题描述】:

我正在处理一个数据集,并将返回正数和负数货币数据。我已经有一个括号。如何仅让 gridview 中的负数显示为红色?我可以在 HTML 端执行此操作吗?

【问题讨论】:

    标签: c# .net asp.net html


    【解决方案1】:

    您可以尝试使用 jQuery 进行样式设置:

    jQuery:

    $("span:contains('-')").css("color", "#f00");
    

    当然,为你的号码所在的任何标签更改跨度(并考虑进入比像 span.number-container 这样的跨度更具体的东西。

    【讨论】:

      【解决方案2】:
      protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)    {
      
         myCell = new TableCell();       
         myCell.Text =   e.Row.DataItemIndex.ToString();
         myCell.Style["color"] = decimal.Parse(myCell.Text)<0?"Red":"OtherColor";
         e.Row.Cells.Add(myCell);
      
      
      }
      

      或者类似的东西

      【讨论】:

        【解决方案3】:

        如果数字为负数,我会将控件的 CssClass 设置为按照您想要的方式设置文本样式。使用 CssClass 而不是 FontColor 的原因是您将来可能会更改它,并且仅更改 CSS 样式而不是使用它的任何代码会更容易。

        <asp:BoundField runat="server"
            DataField="Value"
            HeaderText="value"
            ItemStyleCssClass='<% (double)Eval("Value") < 0 ? "negative-number" : "" %>' />
        

        【讨论】:

        • 如果我从服务器端添加 BoundField(列),ItemStyleCssClass 的值是多少?我试过 ItemStyle.CssClass = $"" 但似乎没有用。谢谢。
        【解决方案4】:

        在不使用具有格式规则的第三方控件的情况下,我将使用 Row 的数据绑定事件并在相关单元格的文本为负数时为其着色。这给 UI 层增加了一点点权重,但在交付成千上万行之前,这还不够明显。如果您要交付成千上万行,则可能存在架构问题。

        【讨论】:

          【解决方案5】:

          有很多方法可以做到这一点,想到两种:

          1. 应用一个 CSS 类,将元素的 color 设置为红色。
          2. 在您用于呈现数字的 WebControl 上设置 Color 属性。

          没有一些代码,很难给你具体的例子。

          【讨论】:

            猜你喜欢
            • 2019-02-15
            • 2015-01-09
            • 2011-03-13
            • 1970-01-01
            • 2013-06-21
            • 1970-01-01
            • 2019-01-27
            • 2012-07-13
            • 2021-02-17
            相关资源
            最近更新 更多