経理担当者向けのデータを入力しているグリッドビューがあり、通貨の値を書式設定して、$ なしで表示し、桁をコンマで区切り、負の数を ( ) で囲んで表示するように求めています。
例えば:
12345.67 = 12,345.67
-12345.67 = (12,345.67)
私はインターウェブの周りに私を近づける多くの例を見つけましたが、ネガの周りに ( ) がないか、含まれている $ があります。
経理担当者向けのデータを入力しているグリッドビューがあり、通貨の値を書式設定して、$ なしで表示し、桁をコンマで区切り、負の数を ( ) で囲んで表示するように求めています。
例えば:
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} と同じくらい単純になりますが、負の数には ( ) が必要なので、SQL レベルで何かをしたり、データソースを直接操作する分離コードで何かをしたい場合を除き、BoundField は選択できません。フィールドにバインドされる前に。
次のオプションは、Label で TemplateField を使用し、それに応じてコード ビハインドの GV RowDataBound イベントでセットを設定することです。