1

昨年からのいくつかの異なる料金を表示するために、グリッドビューにデータテーブルを入力しています。グリッドビューの料金を通貨形式で表示したいのですが、ヘッダーをクリックしたときに列をソートできるようにしたいと考えています。
列が文字列 ex 型の場合、形式を簡単に通貨にすることができます。Dim dt as DataTable dt.Columns.Add("ChargeField", System.Type.GetType("System.String"))

ただし、文字列の場合、並べ替えは正しく機能しません

このコードを使用して並べ替えます dt.DefaultView.Sort = ChargeField & " " & ASC

列が double ex 型の場合、並べ替えは機能します。dt.Columns.Add("ChargeField", System.Type.GetType("System.Double"))

しかし、それは通貨形式ではありません。

datatable/Gridview に、その値を通貨として表示する double/decimal 列を持たせる方法はありますか? そうでない場合、私がやろうとしていることを達成するためのより良い方法はありますか?

4

1 に答える 1

4

適切にソートされるように、列を二重に追加します(投稿で述べたように)。

dt.Columns.Add("ChargeField ", System.Type.GetType("System.Double"))

次に、これを実行して、データ グリッド ビューのすべての列を通貨としてフォーマットできます。

DataGridView1.DataSource=dt
DataGridView1.DefaultCellStyle.Format = "c"

または、個々の列に対して実行できます。

DataGridView1.DataSource=dt
DataGridView1.Columns("ChargeField").DefaultCellStyle.Format = "c"

Gridview の場合、DataFormatString を使用できます。この MSDN ページ、この MSDN フォーラムの投稿、およびこの ASP.net フォーラムの投稿が役立つ場合があります。

<Columns>
    <asp:BoundField DataField="ChargeField" DataFormatString = "{0:c}" />
</Columns>
于 2013-07-23T01:27:07.060 に答える