Форматирование столбца таблицы данных для отображения валюты

Я ввожу данные в таблицу, чтобы показать несколько разных сборов за прошлый год. Я хочу, чтобы платежи в представлении сетки отображались в валютном формате, но я также хотел бы иметь возможность сортировать столбцы при нажатии на заголовки.
Я могу легко получить формат валюты, если столбцы имеют строковый тип бывший. 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 иметь двойной/десятичный столбец, который показывает его значения в виде валюты? Если нет, есть ли лучший способ выполнить то, что я пытаюсь сделать?


person Thomas Holladay    schedule 22.07.2013    source источник


Ответы (1)


Добавьте столбцы как двойные (как вы сказали в своем посте), чтобы они правильно сортировались.

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>
person rwisch45    schedule 23.07.2013
comment
В моем представлении сетки нет поля DefaultCellStyle в столбцах. Скорее всего, потому что это просто представление сетки, а не представление сетки данных, но я не могу преобразовать свое представление сетки в представление сетки данных. Кстати, я использую Microsoft Visual Studio 2010. - person Thomas Holladay; 23.07.2013
comment
@ThomasHolladay отредактировал мой ответ, включив в него просмотр сетки - person rwisch45; 23.07.2013