在ASP.NET中,要實現ListView的分組顯示,你可以使用GroupTemplate和ItemTemplate來自定義ListView的布局。以下是一個簡單的示例,展示了如何使用這兩個模板來實現分組顯示:
GroupTemplate和ItemTemplate:<asp:ListView ID="ListView1" runat="server" GroupTemplateID="GroupTemplate" ItemTemplateID="ItemTemplate">
</asp:ListView>
<asp:Template>標簽內,定義GroupTemplate和ItemTemplate:<asp:Template ID="GroupTemplate" runat="server">
<div>
<h3><%# Eval("GroupName") %></h3>
<asp:ListView ID="ListViewGroupItems" runat="server" DataSource='<%# Eval("Items") %>'>
<ItemTemplate>
<p><%# Eval("ItemName") %></p>
</ItemTemplate>
</asp:ListView>
</div>
</asp:Template>
<asp:Template ID="ItemTemplate" runat="server">
<p><%# Eval("ItemName") %></p>
</asp:Template>
在這個示例中,我們首先定義了一個GroupTemplate,它包含一個標題(<h3>)和一個內部ListView(ListViewGroupItems),用于顯示分組內的項目。然后,我們定義了一個ItemTemplate,用于顯示每個項目的名稱。
DataSource屬性,以便它包含分組數據:protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// 創建一個分組數據源
var groupedData = new[]
{
new { GroupName = "Group 1", Items = new[] { new { ItemName = "Item 1.1" }, new { ItemName = "Item 1.2" } } },
new { GroupName = "Group 2", Items = new[] { new { ItemName = "Item 2.1" }, new { ItemName = "Item 2.2" } } },
new { GroupName = "Group 3", Items = new[] { new { ItemName = "Item 3.1" }, new { ItemName = "Item 3.2" } } }
};
// 設置ListView的分組數據源
ListView1.DataSource = groupedData;
ListView1.DataBind();
}
}
在這個示例中,我們創建了一個包含分組數據的數組,并將其設置為ListView的DataSource屬性。然后,我們調用DataBind()方法來綁定數據并顯示在頁面上。
現在,當你運行應用程序時,你應該能看到一個按分組顯示的ListView,其中每個分組都有一個標題和該分組內的項目列表。