【问题标题】:Generate multiple Gridviews with properties of another Gridview使用另一个 Gridview 的属性生成多个 Gridview
【发布时间】:2012-12-27 18:16:01
【问题描述】:

我在 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>

在后面的代码中,我想使用 GV_Sample 的所有属性生成多个 Gridview,并且只需更改 DataSource:

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 gvr = GV_Sample;
  • 如何参考 GV_Sample 生成 gridview?
  • 当您说生成新实例时使用“new”关键字,您所做的只是引用分配。我不是您想要实现的目标,但如果您使用带有网格视图项目的中继器控件来实现它会更好。并在 Row Data Bound 事件中处理绑定。
  • 我生成了 UserControl 并将 gridview 放在那里,但是当我想使用 UserControl 创建一个实例时,它会问我是否“缺少使用指令或程序集引用?”。 PS:是我第一次创建 UserControl。

标签: c# asp.net gridview


【解决方案1】:

您可以将 UserControl 写入新的 gridView

    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="WebApplication1.WebUserControl1" %>

<asp:GridView ID="GridView1" runat="server"></asp:GridView>

然后将用户控件添加到占位符。

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

【讨论】:

  • 我生成 UserControl 并将 gridview 放在那里,但是当我想使用 UserControl 创建一个实例时,它会问我是否“缺少 using 指令或程序集引用?”。 PS:是我第一次创建 UserControl。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多