ASP.NET 嵌套Repeater

以下是引用片段:
  -----
Nestedrepeater.aspx
<%@ Page language="c#" Codebehind="NestedRepeater.aspx.cs" AutoEventWireup="false" Inherits="NestedRepeater.NestedRepeater" %>
            <%@ Import Namespace="System.Data" %>
            <html>
            <body>
            <form runat=server>
            <!-- start parent repeater -->
            <asp:repeater id="parentRepeater" runat="server">
            <itemtemplate>
            <b><%# DataBinder.Eval(Container.DataItem,"au_id") %></b><br>
            <!-- start child repeater -->
            <asp:repeater id="childRepeater" datasource='<%# ((DataRowView)Container.DataItem)
            .Row.GetChildRows("myrelation") %>' runat="server">
            <itemtemplate>
            <%# DataBinder.Eval(Container.DataItem, "[\"title_id\"]")%><br>
            </itemtemplate>
            </asp:repeater>
            <!-- end child repeater -->
            </itemtemplate>
            </asp:repeater>
            <!-- end parent repeater -->
            </form>
            </body>
            </html>
            

Nestedrepeater.aspx.cs

using System;
            using System.Data;
            using System.Data.SqlClient;
            using System.Web;
            using System.Web.SessionState;
            using System.Web.UI;
            using System.Web.UI.WebControls;
            namespace NestedRepeater
            {
            public class NestedRepeater : System.Web.UI.Page
            {
            protected System.Web.UI.WebControls.Repeater parentRepeater;
            public NestedRepeater()
            {
            Page.Init += new System.EventHandler(Page_Init);
            }
            public void Page_Load(object sender, EventArgs e)
            {
            //Create the connection and DataAdapter for the Authors table.
            SqlConnection cnn = new SqlConnection("server=(local);database=pubs; Integrated Security=SSPI ;");
            SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors",cnn);
            //Create and fill the DataSet.
            DataSet ds = new DataSet();
            cmd1.Fill(ds,"authors");
            //Create a second DataAdapter for the Titles table.
            SqlDataAdapter cmd2 = new SqlDataAdapter("select * from titleauthor",cnn);
            cmd2.Fill(ds,"titles");
            //Create the relation bewtween the Authors and Titles tables.
            ds.Relations.Add("myrelation",
            ds.Tables["authors"].Columns["au_id"],
            ds.Tables["titles"].Columns["au_id"]);
            //Bind the Authors table to the parent Repeater control, and call DataBind.
            parentRepeater.DataSource = ds.Tables["authors"];
            Page.DataBind();
            //Close the connection.
            cnn.Close();
            }
            private void Page_Init(object sender, EventArgs e)
            {
            InitializeComponent();
            }
            private void InitializeComponent()
            {
            this.Load += new System.EventHandler(this.Page_Load);
            }
            }
            }
            
                  
原文地址:https://www.cnblogs.com/Caesar/p/1026884.html