2011-04-21 128 views
0

我有以下內容的DataTable:如何獲取一個數據集/數據表並打印嵌套的內容?

Category Vehicle_Num  
Minivan  1 
Minivan  2 
Minivan  3 
Caravan  1 
Caravan  6 
5door  1 
5door  3 

etc... 

我想打印結果到一個aspx頁面的格式爲:

<h2>Minivan</h2> 
<ul> 
    <li>1</li> 
    <li>2</li> 
    <li>3</li> 
</ul> 

<h2>Caravan</h2> 
<ul> 
    <li>1</li> 
    <li>6</li> 
</ul> 

<h2>5door</h2> 
<ul> 
    <li>1</li> 
    <li>3</li> 
</ul> 

我對如何做到這一點有點困惑在asp.net中。在PHP世界中,我很容易將數據錶轉換爲關聯數組,然後打印到模板文件。我想知道如果這是我需要採取與asp.net相同的方法。

+0

您使用的web表單或MVC? – 2011-04-21 21:38:26

回答

3

它很容易與兩個中繼器:

<asp:Repeater Id="Categories" runat="server"> 
<ItemTemplate> 
    <h2><%#Eval("Category") %></h2> 
    <ul> 
    <asp:Repeater Id="myRep" runat="server" DataSource='<%# Eval("Numbers") %>'> 
    <ItemTEmplate> 
    <li><%# Eval("VehicleNum") %></li> 
    </ItemTemplate> 
    </asp:Repeater> 
    </ul> 
</ItemTemplate> 
</asp:Repeater> 

在後面像這樣的代碼:

Categories.DataSource = dt.Rows.Cast<DataRow> 
.Select(r => new { Category = r.Field<string>("Category"), VehicleNum = r.Field<string>("Vehicle_Num") }) 
.GroupBy(v => v.Category) 
.Select(g => new { Category = g.Key, Numbers = g.ToList() }); 
+0

謝謝,您知道您在Select()函數中使用的符號,其中r => new {}。我從來沒有見過這種符號,你能告訴我該怎麼讀嗎? – John 2011-04-21 22:32:58

+0

該行應該是'Categories.DataSource = dt.Rows.Cast ()' – PunkyGuy 2011-04-21 23:03:47

+0

@PunkyGuy固定。謝謝 – onof 2011-04-22 06:19:40

相關問題