C# 给定datatable,可以使用repeater、gridview等
是否有办法使用Repeater、Gridview、DataList等将datatable转换为下面的报告格式 给定数据表:C# 给定datatable,可以使用repeater、gridview等,c#,asp.net,C#,Asp.net,是否有办法使用Repeater、Gridview、DataList等将datatable转换为下面的报告格式 给定数据表: dept, section, title ----------------------- IT,Tech,Tech1 IT,Tech,Tech2 IT,Dev,Dev1 IT,Dev,Dev2 HR,Ben,Spec1 Display Format for Repeater, DataList, GridView, etc. IT Tech Tec
dept, section, title
-----------------------
IT,Tech,Tech1
IT,Tech,Tech2
IT,Dev,Dev1
IT,Dev,Dev2
HR,Ben,Spec1
Display Format for Repeater, DataList, GridView, etc.
IT
Tech
Tech1
Tech2
Dev
Dev1
Dev2
HR
Ben
Spec1
假设datatable中的列数是固定的,则可以使用嵌套中继器来满足此要求 你必须放3个中继器 例如:
<asp:Repeater ID="repeaterDept" runat="server">
<ItemTemplate>
<asp:Repeater ID="repeaterSection" runat="server">
<ItemTemplate>
<asp:Repeater ID="repeaterTitle" runat="server">
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
现在,从datatable中派生不同的部门,并用它绑定repeaterDept
。在,ItemDataBound
事件上,检索绑定部门的各个子部分,并使用repeaterSection
将其绑定。对于repeaterTitle
,请遵循相同的步骤
我想,这应该能满足你的要求。当然可以。不过,您可能需要嵌套中继器以获得该结构。您可以使用linq对数据进行分组,这样可以更容易地显示如果列数可变,我的选项是什么?@Rod:如果列数可变,则会变得非常复杂。所以,在这种情况下,建议从包含分层数据的源获取表。e、 只返回两列,如
标题、父项和相应的绑定嵌套转发器。。。