我无法在DataGridView上显示货币格式。 你能看看这段代码。
private void dataGridView1_DataBindingComplete(object sender,
DataGridViewBindingCompleteEventArgs e)
{
objPreview.dataGridView1.Columns["Debit"].DefaultCellStyle.Format = "c";
objPreview.dataGridView1.Columns["Credit"].DefaultCellStyle.Format = "c";
}
答案 0 :(得分:4)
如果它是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>
答案 1 :(得分:4)
尝试添加此
objPreview.dataGridView1.Columns["Debit"].ValueType = Type.GetType("System.Decimal")
objPreview.dataGridView1.Columns["Credit"].ValueType = Type.GetType("System.Decimal")
答案 2 :(得分:1)
您可以检查(断点或其他)DataBindingComplete事件被触发。所以至少我们知道它不是那个
(已编辑) 因此,如果它被解雇了,这可能会有所帮助
http://msdn.microsoft.com/en-us/library/k4sab6f9
也许通过创建一种新风格它会有所帮助
答案 3 :(得分:0)
此外,您可以将此用于Windows窗体:(或其等效的WPF或ASP,...)
yourColumn.DefaultCellStyle.Format = "#,#";
// And add below if you want
yourColumn.DefaultCellStyle.NullValue= "0";
答案 4 :(得分:0)
如果您已将DataSource绑定到DataGridView,则可以通过设置每个单元格格式来设置单元格样式:
foreach (DataGridViewRow row in dataGridView1.Rows)
{
row.Cells["Debit"].Style.Format = "c";
row.Cells["Credit"].Style.Format = "c";
}
确保您的值是数值。
答案 5 :(得分:0)
尝试将@Pranay Rana建议的代码添加到DataGridView上的 CellFormatting 事件中:
private void NameOfYourGridGoesHere_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
this.NameOfYourGridGoesHere.Columns["UnitPrice"].DefaultCellStyle.Format = "c";
}