1

Я вводил данные в виде сетки, чтобы показать несколько разных сборов за последний год. Я хочу, чтобы сборы в gridview отображались в формате валюты, но я также хотел бы иметь возможность сортировать столбцы при нажатии на заголовки.
Я могу легко получить формат для валюты, если столбцы имеют строку типа ex. тусклым дт в DataTable dt.Columns.Add ("ChargeField", System.Type.GetType ("System.String"))Форматирование столбца datatable для отображения валюты

но сортировка не работает правильно, когда это строка

Я сортирую, используя этот код dt.DefaultView.Sort = ChargeField & «» & ASC

сортировка делает работу, когда столбцы типа двойной отл. dt.Columns.Add («ChargeField», System.Type.GetType («System.Double»))

, но тогда он не находится в формате валюты.

Есть ли способ заставить datatable/Gridview иметь двойной/десятичный столбец, который показывает его значения в качестве валюты? Если нет, есть ли лучший способ выполнить то, что я пытаюсь сделать?

ответ

3

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

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. This MSDN page может помочь, а также this MSDN forum post и this ASP.net forum post

<Columns> 
    <asp:BoundField DataField="ChargeField" DataFormatString = "{0:c}" /> 
</Columns> 
+0

Мой GridView не имеет DefaultCellStyle поля в ее столбцах. Скорее всего, это просто gridview, а не представление datagrid, но я не могу преобразовать gridview в datagridview. Кстати, я использую Microsoft visual Studio 2010. –

+0

@ThomasHolladay Отредактировал мой ответ, чтобы включить gridviews – rwisch45