Формат данных в DataGridView в приложении Windows

112
11

Я не могу показать формат валюты в DataGridView.
Можете ли вы посмотреть этот код.


private void dataGridView1_DataBindingComplete(object sender,
DataGridViewBindingCompleteEventArgs e)
{
objPreview.dataGridView1.Columns["Debit"].DefaultCellStyle.Format = "c";
objPreview.dataGridView1.Columns["Credit"].DefaultCellStyle.Format = "c";
}

спросил(а) 2021-01-19T19:49:51+03:00 9 месяцев назад
1
Решение
102

если это форма Windows, чем писать этот код, прежде чем вы привязываете данные к сетке... что-то ниже в форме consturctor...


public Form1()
{
this.dataGridView1.Columns["UnitPrice"].DefaultCellStyle.Format = "c";
}

если его ASP.Net
попробуйте что-то вроде DataFormatString="{0:c}"


<asp:BoundField HeaderText="Price/Unit" 
DataField="UnitPrice" SortExpression="UnitPrice"
DataFormatString="{0:c}">
<ItemStyle HorizontalAlign="Right"></ItemStyle>

ответил(а) 2021-01-19T19:49:51+03:00 9 месяцев назад
103

Попробуйте добавить это

objPreview.dataGridView1.Columns["Debit"].ValueType = Type.GetType("System.Decimal")
objPreview.dataGridView1.Columns["Credit"].ValueType = Type.GetType("System.Decimal")

ответил(а) 2021-01-19T19:49:51+03:00 9 месяцев назад
65

Вы можете проверить (точку останова или что-то еще), что событие DataBindingComplete уволено. Поэтому, по крайней мере, мы знаем, что это не так.


(отредактировано)
Поэтому, если его уволили, проверьте, возможно, это поможет


http://msdn.microsoft.com/en-us/library/k4sab6f9


Возможно, создав новый стиль, он поможет

ответил(а) 2021-01-19T19:49:51+03:00 9 месяцев назад
47

Попробуйте добавить код @Pranay Rana, предложенный в Событие CellFormatting в DataGridView:


private void NameOfYourGridGoesHere_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
this.NameOfYourGridGoesHere.Columns["UnitPrice"].DefaultCellStyle.Format = "c";
}

ответил(а) 2021-01-19T19:49:51+03:00 9 месяцев назад
47

Если вы уже привязали свой DataSource к DataGridView, вы можете установить свой стиль ячейки, установив каждый формат ячейки, например:


foreach (DataGridViewRow row in dataGridView1.Rows)
{
row.Cells["Debit"].Style.Format = "c";
row.Cells["Credit"].Style.Format = "c";
}

Убедитесь, что ваше значение является числовым.

ответил(а) 2021-01-19T19:49:51+03:00 9 месяцев назад
46

Также вы можете использовать это для Windows Forms: (или его эквивалент для WPF или ASP,...)


yourColumn.DefaultCellStyle.Format = "#,#";

// And add below if you want
yourColumn.DefaultCellStyle.NullValue= "0";

ответил(а) 2021-01-19T19:49:51+03:00 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема