我有一个网格视图,我正在为会计人员填充数据,他们希望我格式化货币值,以便它们显示时没有 $'s,用逗号分隔数字和用 () 包围的负数
例如:
12345.67 = 12,345.67
-12345.67 = (12,345.67)
我在互联网上发现了很多让我很接近的例子,但要么没有(),要么包括一个 $。
我有一个网格视图,我正在为会计人员填充数据,他们希望我格式化货币值,以便它们显示时没有 $'s,用逗号分隔数字和用 () 包围的负数
例如:
12345.67 = 12,345.67
-12345.67 = (12,345.67)
我在互联网上发现了很多让我很接近的例子,但要么没有(),要么包括一个 $。
所以我想基本上问题是,我将调用什么 String.Format() 来将货币值格式化为上述要求。
在弄乱了一些自定义格式之后,我想通了!
var amt = new BoundField ();
amt.DataFormatString = "{0:#,##0.00;(#,##0.00);0}";
奇迹般有效。
如果它只是没有 ( ) 的数字,那么它就像 {0:N} 一样简单,但是由于您需要 ( ) 来表示负数 BoundField 不是您的选择,除非您想在 sql 级别或代码隐藏直接操作数据源在它绑定到字段之前。
您的下一个选项是使用带有标签的 TemplateField 并在代码隐藏的 GV RowDataBound 事件中相应地设置集合。