2

我有一个网格视图,我正在为会计人员填充数据,他们希望我格式化货币值,以便它们显示时没有 $'s,用逗号分隔数字和用 () 包围的负数

例如:

 12345.67 = 12,345.67
-12345.67 = (12,345.67)

我在互联网上发现了很多让我很接近的例子,但要么没有(),要么包括一个 $。

4

2 回答 2

8

所以我想基本上问题是,我将调用什么 String.Format() 来将货币值格式化为上述要求。

在弄乱了一些自定义格式之后,我想通了!

var amt = new BoundField ();
amt.DataFormatString = "{0:#,##0.00;(#,##0.00);0}";

奇迹般有效。

于 2011-03-29T21:17:17.947 回答
1

如果它只是没有 ( ) 的数字,那么它就像 {0:N} 一样简单,但是由于您需要 ( ) 来表示负数 BoundField 不是您的选择,除非您想在 sql 级别或代码隐藏直接操作数据源在它绑定到字段之前。

您的下一个选项是使用带有标签的 TemplateField 并在代码隐藏的 GV RowDataBound 事件中相应地设置集合。

于 2011-03-29T19:03:42.100 回答