【发布时间】:2010-10-12 23:47:56
【问题描述】:
我正在处理一个数据集,并将返回正数和负数货币数据。我已经有一个括号。如何仅让 gridview 中的负数显示为红色?我可以在 HTML 端执行此操作吗?
【问题讨论】:
我正在处理一个数据集,并将返回正数和负数货币数据。我已经有一个括号。如何仅让 gridview 中的负数显示为红色?我可以在 HTML 端执行此操作吗?
【问题讨论】:
您可以尝试使用 jQuery 进行样式设置:
jQuery:
$("span:contains('-')").css("color", "#f00");
当然,为你的号码所在的任何标签更改跨度(并考虑进入比像 span.number-container 这样的跨度更具体的东西。
【讨论】:
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);
}
或者类似的东西
【讨论】:
如果数字为负数,我会将控件的 CssClass 设置为按照您想要的方式设置文本样式。使用 CssClass 而不是 FontColor 的原因是您将来可能会更改它,并且仅更改 CSS 样式而不是使用它的任何代码会更容易。
<asp:BoundField runat="server"
DataField="Value"
HeaderText="value"
ItemStyleCssClass='<% (double)Eval("Value") < 0 ? "negative-number" : "" %>' />
【讨论】:
在不使用具有格式规则的第三方控件的情况下,我将使用 Row 的数据绑定事件并在相关单元格的文本为负数时为其着色。这给 UI 层增加了一点点权重,但在交付成千上万行之前,这还不够明显。如果您要交付成千上万行,则可能存在架构问题。
【讨论】:
有很多方法可以做到这一点,想到两种:
color 设置为红色。Color 属性。没有一些代码,很难给你具体的例子。
【讨论】: