|
Nestedrepeater.aspx <%@ Page Language=C# Inherits="yourprojectname.nestedrepeater" %> <%@ Import Namespace="System.Data" %>
<html> <body> <form runat=server>
<!-- start parent repeater --> <asp:repeater id="parent" runat="server"> <itemtemplate> <b><%# DataBinder.Eval(Container.DataItem,"au_id") %></b><br>
<!-- start child repeater --> <asp:repeater id="child" 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 yourprojectname { public class nestedrepeater : System.Web.UI.Page { protected System.Web.UI.WebControls.Repeater parent; 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;uid=sa;pwd=;"); 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. parent.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); } } } |