动态地向数据网格视图添加行

本文关键字:网格 视图 添加行 数据网 数据 动态 | 更新日期: 2023-09-27 18:35:59

我通常不会发布问题,我知道这个答案已经在某个地方了,但由于某种原因我没有找到它。 基本上,我有一个数据网格视图,它具有可变的列数和可变的行数。 因此,当我为屏幕构建它时,我首先使用以下代码添加列:

// Set column names
for (int i = 0; i < count; i++)
{
  fieldName = fromFileFields[i];
  dtaRecordDisplay.Columns.Add(fromFileFields[i}, fromFileFields[i});
}

现在,我想用如下所示的内容填充视图中的行:

// Set row data
for (int i = 0; i < count; i++)
{
  dtaRecordDisplay.Rows.Add(Row1, Row2, etc., etc., etc..........);
}

我很难弄清楚能够一次添加所有数据行的循环。 有没有人对如何实现这一目标有任何想法?

提前感谢!

动态地向数据网格视图添加行

在这种情况下,我会用要使用的列和行填充 DataTable,并将其绑定到网格。

DataTable dt = new DataTable();
// first add your columns
for (int i = 0; i < count; i++)
{
    dt.Columns.Add(fromFileFields[i]);
}
// and then add your rows
for (int i = 0; i < count; i++)
{
    var row = dt.NewRow();
    // Set values for columns with row[i] = xy
    dt.Rows.Add(row);
}
datagridview.DataSource = dt;

您需要创建一个DataTable,并将其绑定到网格视图。然后添加行和列,就像 Marc 说的那样:

https://stackoverflow.com/a/35604744/5882760

原因是网格视图实例的列仅包含有关如何显示附加DataTable中的数据的信息。

它们包含有关要显示哪些列、以什么顺序显示等的信息。

尝试以下代码,您可以向 dataGridView 添加行,而无需输出任何数据源或数据表。

dataGridView1.AllowUserToAddRows = true;
dtaGridView1 row = (DataGridViewRow)dataGridView1.Rows[0].Clone();
row.Cells[0].Value = "Your cell 0 Data";
row.Cells[1].Value = "Your cell 1 Data";
row.Cells[2].Value = "Your cell 2 Data";
   ………….
row.Cells[n].Value = "Your cell n Data";
dataGridView1.Rows.Add(row);