生成具有另一个Gridview属性的多个Gridview

本文关键字:Gridview 属性 另一个 | 更新日期: 2023-09-27 17:49:34

我在ASP中声明了一个gridview:

<asp:GridView ID="GV_Sample" runat="server" AutoGenerateColumns="False" Visible="false" CssClass="tabela" style="margin: 0 auto;"
                UseAccessibleHeader="true" >
            <Columns>
                <asp:TemplateField HeaderText="Nome" HeaderStyle-CssClass="col1 column">
                    <HeaderTemplate>
                        Nome
                    </HeaderTemplate>
                    <ItemStyle CssClass="col1 column" />
                    <ItemTemplate>
                        <p><asp:Label ID="lbl_micro" runat="server" Text='<%# Bind("Descricao") %>' /></p>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Curso" HeaderStyle-CssClass="col2 column">
                    <HeaderTemplate>
                        Curso
                    </HeaderTemplate>
                    <ItemStyle CssClass="col2 column" />
                    <ItemTemplate>
                        <asp:HyperLink ID="link_micro" runat="server" Text='<%# "<span>"+ Eval("id") + "</span>" %>' NavigateUrl='<%# returnRawUrl() + "&id=" + Eval("id") %>' CssClass="linkBlock button-cursos" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>                        
        </asp:GridView>

在代码后面,我想生成多个gridview与GV_Sample的所有属性,只是改变数据源:

for(int i=0; i<array.Count; i++)
{
     GridView gvr = GV_Sample;
     gvr.id="myGV_"+i;
     SqlDosCursos.SelectParameters["ID"].DefaultValue = array[i];
     gvr.DataSourceID = "SqlDosCursos";
     gvr.DataBind();
     myPlaceHolder.Controls.Add(gvr);
}

问题只是我在占位符中插入GridView的最后一个周期,所有其他应该插入的人都不在那里。我怎么解决这个问题?

谢谢!

生成具有另一个Gridview属性的多个Gridview

你可以写一个UserControl来新建一个gridView

    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="WebApplication1.WebUserControl1" %>
<asp:GridView ID="GridView1" runat="server"></asp:GridView>

,然后添加usercontrol到占位符。

WebUserControl1 gvr = new WebUserControl1();
            myPlaceHolder.Controls.Add(gvr);