5

我无法在 DataGridView 上显示货币格式。你们能看一下这段代码吗?

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

6 回答 6

4

尝试添加这个

objPreview.dataGridView1.Columns["Debit"].ValueType = Type.GetType("System.Decimal")
objPreview.dataGridView1.Columns["Credit"].ValueType = Type.GetType("System.Decimal")
于 2012-05-23T07:29:53.577 回答
4

如果它是 Windows 窗体,而不是在将数据绑定到网格之前编写此代码...在表单构造函数中如下所示...

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>
于 2012-05-23T07:29:21.940 回答
1

您能否检查(断点或其他东西)DataBindingComplete 事件被触发。所以至少我们知道它不是

(已编辑)所以如果它被解雇了检查这可能会有所帮助

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

也许通过创造一种新风格会有所帮助

于 2012-05-23T07:32:51.627 回答
1

您也可以将其用于 Windows 窗体:(或 WPF 或 ASP 的等效项,...)

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

// And add below if you want
yourColumn.DefaultCellStyle.NullValue= "0";
于 2015-06-09T07:58:47.637 回答
0

如果您已经将 DataSource 绑定到 DataGridView,则可以通过设置每个单元格格式来设置单元格样式,例如:

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

确保您的值是数字。

于 2016-01-22T08:59:35.810 回答
0

尝试将@Pranay Rana 建议的代码添加到 DataGridView 上的CellFormatting事件中:

private void NameOfYourGridGoesHere_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    this.NameOfYourGridGoesHere.Columns["UnitPrice"].DefaultCellStyle.Format = "c";
}
于 2017-01-05T17:27:48.933 回答