1

我有usercontrol一个datagridview。我创建了一个数据表,并将数据网格的源设置为此数据表。我希望在运行时能够在每次单击按钮时在 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);
    }
4

2 回答 2

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;
}
于 2013-04-17T08:03:25.303 回答
1

我会推荐以下方法以获得更好的处理。

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

将通用列表/可枚举转换为数据表?

如果您想要示例代码,请告诉我。

于 2013-04-17T08:11:03.920 回答