Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#,在设置数据源后设置datagridview列格式_C#_Datagridview_Datatable_Format_Datasource - Fatal编程技术网

c#,在设置数据源后设置datagridview列格式

c#,在设置数据源后设置datagridview列格式,c#,datagridview,datatable,format,datasource,C#,Datagridview,Datatable,Format,Datasource,我有一个以编程方式填充的datagridview,我想知道如何使其中一列符合指定的格式——“C2” 在分配数据源之后,是否可以执行此操作 干杯。您也可以在网格中添加事件处理程序这样做 var persons = new[] {new {name = "aaa", salary = 40000}, new {name = "aaa", salary = 40000}, new {name =

我有一个以编程方式填充的datagridview,我想知道如何使其中一列符合指定的格式——“C2”

在分配数据源之后,是否可以执行此操作


干杯。

您也可以在网格中添加事件处理程序这样做

       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();
  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;
注意事项:

  • 数据源设置在列定义的末尾-这是 因为DataGridView在设置数据时会自动绑定数据
  • 这些列被设置为DataGridViewTextBoxColumns。这是 在DataGridView中显示文本信息的标准方式。如果你使用 DataGridViewColumn则不知道如何显示数据

  • 修复:DataGridTextBoxColumn->DataGridViewTextBoxColumn