我想显示DataTable的内容,根据其中一列的值分为几组。所以,如果我有一个DataTable(来自SQL查询):
GroupID Name Description
1 foo bar
1 one two
2 some thing
我想将包含GroupID 1的所有记录放在一个div中,将所有包含GroupID 2的记录放在另一个div中,依此类推。我怎么能这样做?
我正在使用C#代码隐藏在ASP.NET 4.0中编写。
答案 0 :(得分:0)
foreach(DataRow r in myDataTable.Filter("GroupID = 1"))
{
//write out contents of div1
}
foreach(DataRow r in myDataTable.Filter("GroupID = 2"))
{
//write out contents of div2
}
答案 1 :(得分:0)
您可以在数据绑定之前使用LINQ to DataSet对数据进行分组。
的内容var query = from row in myDataTable.AsEnumerable()
group row by row["GroupID"] // appropriate column access code here
select row;
然后你需要嵌套的ListViews(code blatantly copied from here)来实际渲染它。
的内容<asp:ListView runat="server" ID="outer" ItemPlaceholderID="PlaceHolder2">
<LayoutTemplate>
<asp:PlaceHolder runat="server" ID="PlaceHolder2" />
</LayoutTemplate>
<ItemTemplate>
<h1>[Some heading if you'd like one]</h1>
<asp:ListView runat="server" ID="inner"
ItemPlaceholderID="PlaceHolder3"
DataSource="<%# Container.DataItem %>">
<LayoutTemplate>
<ul>
<asp:PlaceHolder runat="server" ID="PlaceHolder3" />
</ul>
</LayoutTemplate>
<ItemTemplate>
<!-- data goes here -->
</ItemTemplate>
</asp:ListView>
</ItemTemplate>
</asp:ListView>