我有一个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);
}
答案 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?
如果您需要示例代码,请告知我们。