Asp.net 创建动态数量的GridView

Asp.net 创建动态数量的GridView,asp.net,gridview,Asp.net,Gridview,我需要一堆GridView来显示在我的页面上。我有一个名为dataList的节对象列表,并且dataList中的每个列表都应该绑定到一个GridView 我有这个 List<List<Section>> dataList; foreach (List<Section> sectionList in dataList) { GridView gv = new GridView(); gv.DataSource = sectionList

我需要一堆GridView来显示在我的页面上。我有一个名为dataList的节对象列表,并且dataList中的每个列表都应该绑定到一个GridView

我有这个

List<List<Section>> dataList;
foreach (List<Section> sectionList in dataList)
{
    GridView gv = new GridView();
    gv.DataSource = sectionList
    gv.DataBind();
}
列表数据列表;
foreach(数据列表中的列表节列表)
{
GridView gv=新的GridView();
gv.DataSource=sectionList
gv.DataBind();
}
和我的标记:

 <asp:GridView runat="server" ID="gv" AutoGenerateColumns="true"/>


但是当我加载页面时,我什么也看不到。如何显示我创建的所有GridView?foreach循环是否已成功地将每个GridView绑定到dataList列表?谢谢删除Gridview标记并使用占位符控件添加动态Gridview,请尝试以下操作:

<asp:PlaceHolder ID="PlaceHolder1" runat="server"/>

在C#

inti=1;
foreach(数据列表中的列表节列表)
{
GridView gv=新的GridView();
//生成动态id
gv.Id=“gv”+i;i++;
gv.AutoGenerateColumns=“true”;
gv.DataSource=sectionList
gv.DataBind();
占位符1.控件。添加(gv);
}

如果动态绑定gridview,则标记上不需要gridview。事实上,你需要一个占位符。你写的代码对你的事业没有任何好处。C#无法识别我在标记中创建的占位符。除了ID和runat之外,我还需要设置占位符对象的其他参数吗?上面的标记应该可以工作。尝试访问ContentPlaceHolder时会出现什么错误?我没有在SiteMaster中工作,我在单独的Results.aspx页面中工作,因此我将其更改为占位符而不是ContentPlaceHolder。尽管占位符和GridView都设置为Visible=true,但在加载页面时仍然无法看到GridView
int i = 1;
foreach (List<Section> sectionList in dataList)
{
    GridView gv = new GridView();
    //generate dynamic id        
    gv.Id = "gv" + i; i++;
    gv.AutoGenerateColumns="true";
    gv.DataSource = sectionList
    gv.DataBind();
    PlaceHolder1.Controls.Add(gv);
}