2009-08-27 12 views

답변

3
 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(); 
2

는 또한 grid_ColumnAdded 이벤트 핸들러 같은에 그것을 할 수 있습니다.

if (e.Column.HeaderText == "YourColumnHeaderText") 
    { 
    e.Column.DefaultCellStyle.Format = "C2"; 
    } 
2

롭의 대답은의 GridView (웹 컨트롤)가 아닌 DataGridView에 (윈폼 컨트롤)입니다.

나는 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; 

유의할 것들 :

  1. 데이터 소스는 열 정의의 끝에서 설정 - DataGridView를가 그 데이터의 자동 데이터 바인딩이 설정되어 있기 때문에이 입니다.
  2. 열은 DataGridViewTextBoxColumns로 설정됩니다. DataGridView에 텍스트 정보를 표시하는 표준 방법은 입니다. DataGridViewColumn을 사용하면 데이터를 표시하는 방법을 알 수 없습니다.
+0

수정 : DataGridTextBoxColumn -> DataGridViewTextBoxColumn –