2013-08-05 44 views
1

我很难设置DataGrid行的标题值。 我的DataGrid绑定到DataTable,但以下代码不会显示第一行的行标题。有任何想法吗?无法设置DataGrid行标题值

:RowHeadersVisible =真

(假设我的数据表具有至少1栏和1行到达此代码之前)

public new void ShowDialog() 
    { 
     dataGridView_replaceTable.Columns.Clear(); 
     dataGridView_replaceTable.Rows.Clear(); 

     dataGridView_replaceTable.DataSource = getDataTable(); <-- returns DataTable 

     dataGridView_replaceTable.Rows[0].HeaderCell.Value = "ROW HEADER 1"; 
     // I expect to see the this string in the first row header - but it remians empty! 
    } 

的代码,用于将行和列到DataTable :

我们:

重placeTableValues DataTable

作为类属性。

public void addCol() 
    { 
     DataColumn column; 

     column = new DataColumn(string colName); 
     column.DataType = System.Type.GetType("System.String"); 
     column.ColumnName = colName; 
     column.ReadOnly = false; 
     replaceTableValues.Columns.Add(column); 
    } 

    public void addRow() 
    { 
     DataRow row; 

     row = replaceTableValues.NewRow(); 

     string[] arr = new string[numOfCols+1]; 
     for (int i = 0; i < arr.Length; i++) 
     { 
      arr[i] = ""; // fill row data as empty string 
     } 

     try 
     { 
      replaceTableValues.Rows.Add(arr); 
     } 
     catch (System.Exception ex) 
     { 
      updateReplaceVarErrorMsg(TABLE_EXCEPTION); 
     } 

    } 

我想要实现:(红色文本) Image

感谢。

+0

尝试'dataGridView_replaceTable.Columns [0] .Name =“ROW HEADER 1”;' – Damith

回答

0

您应该使用属性集合,而不是ColumnsHeaderText

dataGridView_replaceTable.Columns[0].HeaderText="ROW HEADER 1"; 

你也可以做到这一点,当你使用Caption属性添加列:

public void addCol() 
{ 
    DataColumn column; 

    column = new DataColumn(string colName); 
    column.DataType = System.Type.GetType("System.String"); 
    column.ColumnName = colName; 
    column.Caption = "My header" // ASSIGN HEADERS HERE 
    column.ReadOnly = false; 
    replaceTableValues.Columns.Add(column); 
} 
+0

不知道这是我想实现的。我添加了一个图像说明它..(我也试过你的代码,没有任何改变) – etaiso

+0

@etaiso我在等待图像:) – ehsan88

+0

不幸的是,据我所知,你想做什么不能使用普通的'GridView'属性。顺便说一下,这不叫_Header_我自己称之为_Sider_ :)。我使用自定义用户控件来代替网格。我添加了这个“Sider”,它也有一些更好的风格,但也有一些限制。你也可以通过使用一些低级别的消息来“黑客入侵”GridView来做到这一点。 – ehsan88

0
grid.Columns[0].HeaderText = "Something special"; 

的基本途径加一栏是:

int columnIndex = grid.Columns.Add("columnName", "Header Text"); 
+0

我需要行标题而不是列.. – etaiso

+0

你想要现有的列的标题,或者你想为列设置标题? –

+0

我想要标题/标题的行..如上图所示。 – etaiso