【发布时间】:2010-11-23 13:57:03
【问题描述】:
我有一个以编程方式填充的 datagridview,我想知道如何使其中一个列符合指定格式 - “C2”。
这可以在分配数据源后完成吗?
干杯。
【问题讨论】:
标签: c# datagridview datatable format datasource
我有一个以编程方式填充的 datagridview,我想知道如何使其中一个列符合指定格式 - “C2”。
这可以在分配数据源后完成吗?
干杯。
【问题讨论】:
标签: c# datagridview datatable format datasource
var persons = new[] {new {name = "aaa", salary = 40000},
new {name = "aaa", salary = 40000},
new {name = "aaa", salary = 40000},
new {name = "aaa", salary = 40000}};
GridView1.DataSource = persons;
GridView1.AutoGenerateColumns = false;
var NameField = new BoundField();
NameField.HeaderText = "Name";
NameField.DataField = "name";
GridView1.Columns.Add(NameField);
var SalaryField = new BoundField();
SalaryField.HeaderText = "Salary";
SalaryField.DataField = "salary";
SalaryField.DataFormatString = "{0:c2}";
SalaryField.HtmlEncode = false;
GridView1.Columns.Add(SalaryField);
GridView1.DataBind();
【讨论】:
您也可以像这样在 grid_ColumnAdded 事件处理程序中进行。
if (e.Column.HeaderText == "YourColumnHeaderText")
{
e.Column.DefaultCellStyle.Format = "C2";
}
【讨论】:
Rob 的答案是针对 GridView(Web 控件)而不是 DataGridView(winforms 控件)。
我已将他的答案改编为 winforms。
var persons = new[] {new {name = "aaa", salary = 40000},
new {name = "aaa", salary = 40000},
new {name = "aaa", salary = 40000},
new {name = "aaa", salary = 40000}};
DataGridView1.AutoGenerateColumns = false;
var NameField = new DataGridTextBoxColumn();
NameField.HeaderText = "Name";
NameField.DataPropertyName = "name";
DataGridView1.Columns.Add(NameField);
var SalaryField = new DataGridViewTextBoxColumn();
SalaryField.HeaderText = "Salary";
SalaryField.DataPropertyName = "salary";
SalaryField.DefaultCellStyle.Format = "{0:c2}";
DataGridView1.Columns.Add(SalaryField);
DataGridView1.DataSource = persons;
注意事项:
【讨论】: