如何动态创建多个网格视图?

时间:2014-01-11 13:38:39

标签: c# asp.net

如何创建多个网格视图?

我的代码:

GridView gv = new GridView();
Panel PNl = new Panel();

for (int i = 0; i < DST.Tables.Count; i++)
{            
    gv.ID = DST.Tables[i].TableName;
    gv.DataSource = DST.Tables[i];
    gv.DataBind();
    // form.Controls.Add(gv);     
    PNl.Controls.Add(gv);     
}

//gv.Parent.Controls.Add(form);

form.Attributes["runat"] = "server";
form.Controls.Add(PNl);
this.Controls.Add(form);

但是,我的代码只创建了一个网格视图。

2 个答案:

答案 0 :(得分:0)

在循环中移动GridView的创建。这样您将创建许多网格,而不仅仅是重用一个对象。在实践中,您可能希望使用网格创建用户控件并使用它,因为您可以在标记中指定不同的网格属性,这比在代码中指定它们更容易。

答案 1 :(得分:0)

int i=10;

GridView[] gc = new GridView[i];

for (int i = 0; i < 10; i++) 
    {
        gc[i] = new GridView();
        gc[i].ID = "gv" + i;
        gc[i].CopyBaseAttributes(GridView1);
        gc[i].AlternatingRowStyle.CopyFrom(GridView1.AlternatingRowStyle);
        gc[i].BorderStyle = GridView1.BorderStyle;
        gc[i].ControlStyle.CopyFrom(GridView1.ControlStyle);
        gc[i].EditRowStyle.CopyFrom(GridView1.EditRowStyle);
        gc[i].EmptyDataRowStyle.CopyFrom(GridView1.EmptyDataRowStyle);
        gc[i].FooterStyle.CopyFrom(GridView1.FooterStyle);
        gc[i].HeaderStyle.CopyFrom(GridView1.HeaderStyle);
        gc[i].RowStyle.CopyFrom(GridView1.RowStyle);
        gc[i].SelectedRowStyle.CopyFrom(GridView1.SelectedRowStyle);
        gc[i].ShowHeaderWhenEmpty = true;
        gc[i].RowDataBound += new GridViewRowEventHandler(Gv_RowDataBound);
        //gc[i].EmptyDataText = "No ROWS Found in the particular month";
        }

Have GridView1 in design page and set visible to false, so you can copy properties.