C# asp.net中嵌套列表中的嵌套网格视图
我有一个员工列表,其中每个列表项还包含他们访问不同部门的时间(打孔次数)列表 我希望在GridView(ID:GridView1)中显示数据,该GridView包含ID和名称的BoundField列,以及嵌套GridView(ID:GridView2)的TemplateField列,该列将显示部门、班次和时间的列表C# asp.net中嵌套列表中的嵌套网格视图,c#,asp.net,gridview,C#,Asp.net,Gridview,我有一个员工列表,其中每个列表项还包含他们访问不同部门的时间(打孔次数)列表 我希望在GridView(ID:GridView1)中显示数据,该GridView包含ID和名称的BoundField列,以及嵌套GridView(ID:GridView2)的TemplateField列,该列将显示部门、班次和时间的列表 public class PunchInfo { public string DepartmentName { get; set; }
public class PunchInfo
{
public string DepartmentName { get; set; }
public int Shift { get; set; }
public DateTime Time { get; set; }
}
public class Employees
{
public string Id { get; set; }
public string Name { get; set; }
public List<PunchInfo> Punches { get; set; }
}
公共类PunchInfo
{
公共字符串DepartmentName{get;set;}
公共int移位{get;set;}
公共日期时间{get;set;}
}
公营雇员
{
公共字符串Id{get;set;}
公共字符串名称{get;set;}
公共列表打孔{get;set;}
}
我希望在.cs文件中执行此操作,但我不知道如何将数据绑定到网格
/* EmployeeList is List<Employees> */
GridView1.DataSource = EmployeeList;
GridView gv2 = GridView1.FindControl("GridView2") as GridView;
/* How to bind the EmployeeList[row_idx].Punches to the nested GridView2 object? */
GridView1.DataBind();
/*员工列表是列表*/
GridView1.DataSource=EmployeeList;
GridView gv2=GridView1.FindControl(“GridView2”)作为GridView;
/*如何将EmployeeList[row_idx].Punchs绑定到嵌套的GridView2对象*/
GridView1.DataBind();
谢谢您不需要
查找控件
GridView2,只需在.aspx
中添加数据源
元素即可
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="Id">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("Id") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Puches">
<ItemTemplate>
<asp:GridView ID="DetailGridView" runat="server" AutoGenerateColumns="False" DataSource='<%# Eval("Punches") %>'>
<Columns>
<asp:TemplateField HeaderText="Department Name">
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Eval("DepartmentName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Shift">
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Eval("Shift") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Time">
<ItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Eval("Time") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
我的可行例子是:
.aspx
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="Id">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("Id") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Puches">
<ItemTemplate>
<asp:GridView ID="DetailGridView" runat="server" AutoGenerateColumns="False" DataSource='<%# Eval("Punches") %>'>
<Columns>
<asp:TemplateField HeaderText="Department Name">
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Eval("DepartmentName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Shift">
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Eval("Shift") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Time">
<ItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Eval("Time") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>