在ASP.NET中,Repeater是一個用于數據綁定和重復呈現的控件。它允許您根據數據源的數量動態創建多個重復項。
下面是一個示例,展示如何在Repeater中嵌套另一個Repeater來實現更復雜的布局。
假設我們有兩個數據表:Categories和Products,它們之間有一個一對多的關系。我們想要在頁面上顯示所有分類及其相關產品。
首先,在ASP.NET頁面中添加兩個Repeater控件,分別用于顯示分類和產品。例如:
<asp:Repeater ID="rptCategories" runat="server"><ItemTemplate>
<h2><%# Eval("CategoryName") %></h2>
<asp:Repeater ID="rptProducts" runat="server">
<ItemTemplate>
<p><%# Eval("ProductName") %></p>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
然后,在代碼后臺綁定這兩個Repeater到數據源。假設我們有一個名為GetAllCategories()的方法返回所有分類的列表,并且每個分類對象具有名為`Products`的屬性,該屬性包含與分類相關的產品列表。可以使用以下代碼完成數據綁定:
protected void Page_Load(object sender, EventArgs e){
if (!IsPostBack)
{
rptCategories.DataSource = GetAllCategories();
rptCategories.DataBind();
}
}
在這個示例中,外部Repeater rptCategories綁定了分類數據源,內部Repeater rptProducts則綁定了與每個分類對象相關聯的產品列表。
當頁面加載時,兩個Repeater控件將根據數據源動態生成重復項。每個分類將作為外部Repeater的一個重復項展示,而與該分類關聯的產品將作為內部Repeater的重復項嵌套在其中。
通過這種方式,您可以實現在Repeater中嵌套另一個Repeater來構建復雜的布局,并以層次結構的形式展示數據。