每按一次按钮添加行datagridview

时间:2013-04-17 07:59:34

标签: c# datagridview user-controls runtime

我有一个usercontrol数据网格视图。我创建了一个数据表,并将datagrid的源设置为此数据表。我希望,在运行时,能够在每次按钮点击时添加gridview上我想要的行数。

我的代码:

 private DataTable CreateTable()
    {
        Datatable table=new Datatable();
        table.Columns.Add("Name".ToString());
        table.Columns.Add("Size".ToString());
        DataRow dr = table.NewRow();
        dr["Name"] = "Mike";
        DataRow dr2 = table.NewRow();
        dr2["Name"] = "Ryan;
        DataRow dr3 = table.NewRow();
        dr3["Name"] = "Taylor";
        dr["Size"] = " one";
        dr2["Size"] = "two";
        table.Rows.Add(dr);
        table.Rows.Add(dr2);
        table.Rows.Add(dr3);
        return table;
     //and on my constructor I set gridview.DataSource=Datatable;
    }

 //Code  on the event:
 private void button_Click(object sender, EventArgs e)
    {

        DataRow NewRow = table.NewRow();
        table.Rows.Add(NewRow);
    }

2 个答案:

答案 0 :(得分:3)

您需要在表单级别定义DataTable。然后在按钮单击中,您可以执行以下操作:

private void button_Click(object sender, EventArgs e)
{
    DataRow NewRow = table.NewRow();
    table.Rows.Add(NewRow);
    gridview.DataSource=table; //specify the source
}

用于在表单级别定义表:

DataTable table; //DataTable at form level

private DataTable CreateTable()
{
    table=new Datatable(); //here insntianting the form level table. 
    table.Columns.Add("Name".ToString());
    table.Columns.Add("Size".ToString());
    DataRow dr = table.NewRow();
    dr["Name"] = "Mike";
    DataRow dr2 = table.NewRow();
    dr2["Name"] = "Ryan;
    DataRow dr3 = table.NewRow();
    dr3["Name"] = "Taylor";
    dr["Size"] = " one";
    dr2["Size"] = "two";
    table.Rows.Add(dr);
    table.Rows.Add(dr2);
    table.Rows.Add(dr3);
    return table;
 //and on my constructor I set gridview.DataSource=Datatable;
}

答案 1 :(得分:1)

我建议采用以下方法以便更好地处理。

创建通用列表,每次单击都会使用新的数据集附加列表,然后将列表转换为DataTable,如下面的链接所示,然后将DataTable绑定到网格。

Convert generic List/Enumerable to DataTable?

如果您需要示例代码,请告知我们。