如何在网格视图中设置行号

时间:2013-12-29 08:21:37

标签: c# winforms

我需要在winforms中设置数据网格视图中的行数(如sql中的标识)。我在网格视图中动态添加列和行。任何想法。

3 个答案:

答案 0 :(得分:12)

要在行标题中显示文字,您可以使用Row.HeaderCell.Value,如下所示:

void dataGridView1_DataBindingComplete(object sender,
                         DataGridViewBindingCompleteEventArgs e)
{
    DataGridView gridView = sender as DataGridView;
    if (null != gridView)
    {
        foreach (DataGridViewRow r in gridView.Rows)
        {
            gridView.Rows[r.Index].HeaderCell.Value = 
                                (r.Index + 1).ToString();
        }
    }
}

这仅显示用户开始输入时新行的行号。不确定是否有一种简单的方法可以始终在新行上显示行号。

  
    
      
        

asp.net应用程序的另一种最佳方式。这是一个链接http://www.devcurry.com/2010/01/add-row-number-to-gridview.html

      
    
  

只需将以下标记添加到GridView的部分

即可
<Columns>                       
     <asp:TemplateField HeaderText="RowNumber">   
         <ItemTemplate>
                 <%# Container.DataItemIndex + 1 %>   
         </ItemTemplate>
     </asp:TemplateField>
     ...
</Columns>

答案 1 :(得分:1)

方法1:

//You can also use below code

this.DataGridView1.Rows[e.RowIndex].Cell[0].value =e.RowIndex +1;
//get total number of rows

this.DataGridView1.Rows.Count;

方法2:

for (int i = 0; i < SensorGridView.Rows.Count; i++)
{
   DataGridViewRowHeaderCell cell = SensorGridView.Rows[i].HeaderCell;
   cell.Value = (i + 1).ToString();
      SensorGridView.Rows[i].HeaderCell = cell;
}

方法3:

void GridView_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
   this.GridView.Rows[e.RowIndex].Cells[0].Value 
    = (e.RowIndex + 1).ToString();
}

答案 2 :(得分:0)

为什么不喜欢这样。首先构建一个数据表,然后绑定到网格,如下所示

DataTable tbl = new DataTable();
Datacolumn dc = new Datacolumn("ID");
Datacolumn dc1 = new Datacolumn("col1");

Datarow dr = tbl.NewRow();

dr[dc] = "123";
dr[dc1] = "SomeData";

tbl.Rows.Add(dr);

DataGridView.DataSource = tbl;