Skip to content

Instantly share code, notes, and snippets.

@jessgusclark
Created August 27, 2015 20:26
Show Gist options
  • Save jessgusclark/ddebf17c80f7dca54ab4 to your computer and use it in GitHub Desktop.
Save jessgusclark/ddebf17c80f7dca54ab4 to your computer and use it in GitHub Desktop.
Nested Repeaters in C#
<%@ Import Namespace="System.Data" %>
---
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<h2><%# DataBinder.Eval(Container, "DataItem[\"FirstLetter\"]")%></h2>
<ul>
<asp:Repeater ID="Repeater2" runat="server"
DataSource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows("myrelation") %>'>
<ItemTemplate>
<li>
<%# DataBinder.Eval(Container.DataItem, "[\"LastName\"]")%>,
<%# DataBinder.Eval(Container.DataItem, "[\"FirstName\"]")%>
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
</ItemTemplate>
</asp:Repeater>
//create Dataset:
DataSet ds = new DataSet();
//Create the "Letter" DataTable:
DataTable dt = new DataTable();
dt.TableName = "Letters";
dt.Columns.Add(new DataColumn("FirstLetter", typeof(char)));
//Loop through Alpha
for (byte AlphaCtr = 65; AlphaCtr <= 90; AlphaCtr++) {
dt.Rows.Add(System.Convert.ToChar(AlphaCtr));
}
ds.Tables.Add(dt);
// Get Person Table:
using (SqlConnection connection = new SqlConnection(Global.DatabaseConnection)) {
connection.Open();
SqlCommand command = connection.CreateCommand();
command.CommandText = "select * from ExpertsList";
DataTable dt2 = new DataTable();
dt2.TableName = "ExpertsList";
dt2.Load(command.ExecuteReader());
//Modify Table to add "FirstLetter";
dt2.Columns.Add(new DataColumn("FirstLetter", typeof(char)));
foreach (DataRow dr in dt2.Rows) {
dr["FirstLetter"] = Convert.ToString(dr["LastName"])[0]; // or set it to some other value
}
ds.Tables.Add(dt2);
connection.Close();
}
//Create Relation and Bind:
ds.Relations.Add("myrelation",
ds.Tables["Letters"].Columns["FirstLetter"],
ds.Tables["ExpertsList"].Columns["FirstLetter"],
false);
Repeater1.DataSource = ds.Tables["Letters"];
Page.DataBind();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment