在dataGridView C#中添加行和填充值

时间:2017-08-16 07:50:07

标签: c# datagridview

我有问题。如果row [i] .value =" 1.1"我想添加带条件的新行然后我在行[i]上方添加行位置并填充3个单元格的值(其他单元格为空白)。之前[![在此处输入图像描述] [1]] [1]之后[![在此处输入图像描述] [ 2] [2]

1 个答案:

答案 0 :(得分:0)

首次加载DataGridView后,您需要将作为初始源的DataTable传递给类似于此的方法:

private void addExtraRows(DataTable dT)
{

    DataTable newTable = dT.Clone();
    DataRow nR;
    int lastRow = dT.Rows.Count - 1;
    for (int i = 0; i < lastRow; i++)
    {
        if (dataGridView3.Rows[i].Cells[1].Value.ToString() == "1.1")
        {
            for (int j = i + 1; j < dT.Rows.Count; j++)
            {
                if (dT.Rows[j][2] == dT.Rows[i][2] && dT.Rows[j][3] == dT.Rows[i][3])
                {
                    nR = newTable.NewRow();
                    nR[0] = dT.Rows[i][0];
                    nR[1] = "1";
                    nR[2] = dT.Rows[i][2];
                    nR[3] = dT.Rows[i][3];
                    newTable.Rows.Add(nR);
                    break;
                }
            }
        }
        nR = newTable.NewRow();
        nR[0] = dT.Rows[i][0];
        nR[1] = dT.Rows[i][1];
        nR[2] = dT.Rows[i][2];
        nR[3] = dT.Rows[i][3];
        nR[4] = dT.Rows[i][4];
        newTable.Rows.Add(nR);
    }
    nR = newTable.NewRow();
    nR[0] = dT.Rows[lastRow][0];
    nR[1] = dT.Rows[lastRow][1];
    nR[2] = dT.Rows[lastRow][2];
    nR[3] = dT.Rows[lastRow][3];
    nR[4] = dT.Rows[lastRow][4];
    newTable.Rows.Add(nR);

    dataGridView3.DataSource = null;
    dataGridView3.Rows.Clear();
    dataGridView3.DataSource = newTable;
    return;
}

请注意,您可能需要更改dataGridView的名称!

编辑:

假设DataGridView的DataSource是DataTable,那么您可以将方法的开头更改为:

private void addExtraRows()
{
    DataTable dT = (DataTable)dataGridView3.DataSource;
    DataTable newTable = dT.Clone();

现在你要做的就是在网格加载后调用这个例程。