如何在asp.net中动态添加gridview c#

大家好我必须在asp.net中动态添加多个gridview。 没有gridview在选择的基础上进行生长。 提前致谢

private void BindDynaicGrd() { //instance of a datatable DataTable dt = new DataTable(); //instance of a datarow DataRow drow; //creating two datacolums dc1 and dc2 DataColumn dc1 = new DataColumn("Code", typeof(string)); DataColumn dc2 = new DataColumn("Name", typeof(string)); //adding datacolumn to datatable dt.Columns.Add(dc1); dt.Columns.Add(dc2); if (grd.Rows.Count > 0) { foreach (GridViewRow gvr in grdSites.Rows) { CheckBox chk_Single = (CheckBox)gvr.FindControl("chkSingle"); if (chk_Single.Checked == true) { Label lbl_Code = (Label)gvr.FindControl("lblCode"); Label lbl_Name = (Label)gvr.FindControl("lblName"); //instance of a datarow drow = dt.NewRow(); //add rows to datatable //add Column values drow = dt.NewRow(); drow["Code"] = lbl_Code.Text; drow["Name"] = lbl_Name.Text.ToString(); dt.Rows.Add(drow); } } } //set gridView Datasource as dataTable dt. gridcl.DataSource = dt; //Bind Datasource to gridview gridcl.DataBind(); } 

如果我没有从标题中理解错误,则动态添加多个网格视图意味着要在运行时从代码后面添加网格视图。

由于GridView是ASP.NET C#中的一个类,我们可以创建它的对象并像其他类对象一样设置其属性,如下所示:

 GridView objGV = new GridView(); objGV .AutoGenerateColumns = false; 

并且可以从代码中添加不同类型的列,如BoundField和TemplateField,如下所示:

 BoundField field = new BoundField(); field.HeaderText = "Column Header"; field.DataField = Value; objGV .Columns.Add(field); 

最后可以在任何容器控件(如面板)下的.aspx上添加此网格视图对象。

 PanelId.Controls.Add(objGV ); 

对于添加多个网格实例,只需在循环中迭代上面的代码,如:

 for(int i=0;i 

希望我能正确理解您的要求,我的解释对您有所帮助。

我完全赞同@RMadd。 所以不是代码编写服务,你应该首先尝试给我们一些东西来看看并告诉你哪里出错了。

但是,如果您不知道从哪里开始,一种方法是添加所有没有可见性的空网格视图,并根据选择将它们设置为可见。

这是一个模糊的答案,因为我可以为你的模糊问题。

以下是我在Google-foo中找到的其他一些地方:

http://www.dotnetfox.com/articles/create-dynamic-gridview-or-programmatically-create-Asp-Net-gridview-with-dynamic-boundfield-1083.aspx

如何使用asp.net c#并排动态添加gridviews

http://codedisplay.com/runtime-dynamically-creating-gridview-and-bind-data-in-bound-columns-using-asp-net-c-vb-net/